<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs, branch v3.17</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v3.17</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v3.17'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2014-10-03T20:09:57Z</updated>
<entry>
<title>Merge branch 'for-linus' of git://git.samba.org/sfrench/cifs-2.6</title>
<updated>2014-10-03T20:09:57Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2014-10-03T20:09:57Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=7d1419f30cc5106196e54a282d7e115e698c95f6'/>
<id>urn:sha1:7d1419f30cc5106196e54a282d7e115e698c95f6</id>
<content type='text'>
Pull cifs/smb3 fixes from Steve French:
 "Fix for CIFS/SMB3 oops on reconnect during readpages (3.17 regression)
  and for incorrectly closing file handle in symlink error cases"

* 'for-linus' of git://git.samba.org/sfrench/cifs-2.6:
  CIFS: Fix readpages retrying on reconnects
  Fix problem recognizing symlinks
</content>
</entry>
<entry>
<title>ocfs2/dlm: should put mle when goto kill in dlm_assert_master_handler</title>
<updated>2014-10-02T23:28:44Z</updated>
<author>
<name>alex chen</name>
<email>alex.chen@huawei.com</email>
</author>
<published>2014-10-02T23:16:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=55dacd22dba7da4d4f2ccd646cd77886e2c90dd1'/>
<id>urn:sha1:55dacd22dba7da4d4f2ccd646cd77886e2c90dd1</id>
<content type='text'>
In dlm_assert_master_handler, the mle is get in dlm_find_mle, should be
put when goto kill, otherwise, this mle will never be released.

Signed-off-by: Alex Chen &lt;alex.chen@huawei.com&gt;
Reviewed-by: Joseph Qi &lt;joseph.qi@huawei.com&gt;
Reviewed-by: joyce.xue &lt;xuejiufei@huawei.com&gt;
Cc: Mark Fasheh &lt;mfasheh@suse.com&gt;
Cc: Joel Becker &lt;jlbec@evilplan.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>CIFS: Fix readpages retrying on reconnects</title>
<updated>2014-10-02T19:17:41Z</updated>
<author>
<name>Pavel Shilovsky</name>
<email>pshilovsky@samba.org</email>
</author>
<published>2014-10-02T16:13:35Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=1209bbdff2f6bbffa6eb5823033bbd7b8799a5e2'/>
<id>urn:sha1:1209bbdff2f6bbffa6eb5823033bbd7b8799a5e2</id>
<content type='text'>
If we got a reconnect error from async readv we re-add pages back
to page_list and continue loop. That is wrong because these pages
have been already added to the pagecache but page_list has pages that
have not been added to the pagecache yet. This ends up with a general
protection fault in put_pages after readpages. Fix it by not retrying
the read of these pages and falling back to readpage instead.

Fixes debian bug 762306

Signed-off-by: Pavel Shilovsky &lt;pshilovsky@samba.org&gt;
Signed-off-by: Steve French &lt;smfrench@gmail.com&gt;
Tested-by: Arthur Marsh &lt;arthur.marsh@internode.on.net&gt;
</content>
</entry>
<entry>
<title>Fix problem recognizing symlinks</title>
<updated>2014-10-02T19:10:04Z</updated>
<author>
<name>Steve French</name>
<email>smfrench@gmail.com</email>
</author>
<published>2014-09-25T06:26:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=19e81573fca7b87ced7701e01ba164b968d929bd'/>
<id>urn:sha1:19e81573fca7b87ced7701e01ba164b968d929bd</id>
<content type='text'>
Changeset eb85d94bd introduced a problem where if a cifs open
fails during query info of a file we
will still try to close the file (happens with certain types
of reparse points) even though the file handle is not valid.

In addition for SMB2/SMB3 we were not mapping the return code returned
by Windows when trying to open a file (like a Windows NFS symlink)
which is a reparse point.

Signed-off-by: Steve French &lt;smfrench@gmail.com&gt;
Reviewed-by: Pavel Shilovsky &lt;pshilovsky@samba.org&gt;
CC: stable &lt;stable@vger.kernel.org&gt; #v3.13+
</content>
</entry>
<entry>
<title>nfsd4: fix corruption of NFSv4 read data</title>
<updated>2014-09-30T19:57:04Z</updated>
<author>
<name>J. Bruce Fields</name>
<email>bfields@redhat.com</email>
</author>
<published>2014-09-24T20:32:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=15b23ef5d348ea51c5e7573e2ef4116fbc7cb099'/>
<id>urn:sha1:15b23ef5d348ea51c5e7573e2ef4116fbc7cb099</id>
<content type='text'>
The calculation of page_ptr here is wrong in the case the read doesn't
start at an offset that is a multiple of a page.

The result is that nfs4svc_encode_compoundres sets rq_next_page to a
value one too small, and then the loop in svc_free_res_pages may
incorrectly fail to clear a page pointer in rq_respages[].

Pages left in rq_respages[] are available for the next rpc request to
use, so xdr data may be written to that page, which may hold data still
waiting to be transmitted to the client or data in the page cache.

The observed result was silent data corruption seen on an NFSv4 client.

We tag this as "fixing" 05638dc73af2 because that commit exposed this
bug, though the incorrect calculation predates it.

Particular thanks to Andrea Arcangeli and David Gilbert for analysis and
testing.

Fixes: 05638dc73af2 "nfsd4: simplify server xdr-&gt;next_page use"
Cc: stable@vger.kernel.org
Reported-by: Andrea Arcangeli &lt;aarcange@redhat.com&gt;
Tested-by: "Dr. David Alan Gilbert" &lt;dgilbert@redhat.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs</title>
<updated>2014-09-28T00:05:14Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2014-09-28T00:05:14Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=1e3827bf8aebe29af2d6e49b89d85dfae4d0154f'/>
<id>urn:sha1:1e3827bf8aebe29af2d6e49b89d85dfae4d0154f</id>
<content type='text'>
Pull vfs fixes from Al Viro:
 "Assorted fixes + unifying __d_move() and __d_materialise_dentry() +
  minimal regression fix for d_path() of victims of overwriting rename()
  ported on top of that"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  vfs: Don't exchange "short" filenames unconditionally.
  fold swapping -&gt;d_name.hash into switch_names()
  fold unlocking the children into dentry_unlock_parents_for_move()
  kill __d_materialise_dentry()
  __d_materialise_dentry(): flip the order of arguments
  __d_move(): fold manipulations with -&gt;d_child/-&gt;d_subdirs
  don't open-code d_rehash() in d_materialise_unique()
  pull rehashing and unlocking the target dentry into __d_materialise_dentry()
  ufs: deal with nfsd/iget races
  fuse: honour max_read and max_write in direct_io mode
  shmem: fix nlink for rename overwrite directory
</content>
</entry>
<entry>
<title>vfs: Don't exchange "short" filenames unconditionally.</title>
<updated>2014-09-27T19:59:39Z</updated>
<author>
<name>Mikhail Efremov</name>
<email>sem@altlinux.org</email>
</author>
<published>2014-09-24T18:14:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d2fa4a8476b911782f7e5167db18770222ac40c3'/>
<id>urn:sha1:d2fa4a8476b911782f7e5167db18770222ac40c3</id>
<content type='text'>
Only exchange source and destination filenames
if flags contain RENAME_EXCHANGE.
In case if executable file was running and replaced by
other file /proc/PID/exe should still show correct file name,
not the old name of the file by which it was replaced.

The scenario when this bug manifests itself was like this:
* ALT Linux uses rpm and start-stop-daemon;
* during a package upgrade rpm creates a temporary file
  for an executable to rename it upon successful unpacking;
* start-stop-daemon is run subsequently and it obtains
  the (nonexistant) temporary filename via /proc/PID/exe
  thus failing to identify the running process.

Note that "long" filenames (&gt; DNAiME_INLINE_LEN) are still
exchanged without RENAME_EXCHANGE and this behaviour exists
long enough (should be fixed too apparently).
So this patch is just an interim workaround that restores
behavior for "short" names as it was before changes
introduced by commit da1ce0670c14 ("vfs: add cross-rename").

See https://lkml.org/lkml/2014/9/7/6 for details.

AV: the comments about being more careful with -&gt;d_name.hash
than with -&gt;d_name.name are from back in 2.3.40s; they
became obsolete by 2.3.60s, when we started to unhash the
target instead of swapping hash chain positions followed
by d_delete() as we used to do when dcache was first
introduced.

Acked-by: Miklos Szeredi &lt;mszeredi@suse.cz&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Alexander Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: linux-fsdevel@vger.kernel.org
Cc: stable@vger.kernel.org
Fixes: da1ce0670c14 "vfs: add cross-rename"
Signed-off-by: Mikhail Efremov &lt;sem@altlinux.org&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>fold swapping -&gt;d_name.hash into switch_names()</title>
<updated>2014-09-27T19:59:11Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2014-09-24T19:27:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=a28ddb87cdddb0db57466ba7f59f831002f4340c'/>
<id>urn:sha1:a28ddb87cdddb0db57466ba7f59f831002f4340c</id>
<content type='text'>
and do it along with -&gt;d_name.len there

Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>fold unlocking the children into dentry_unlock_parents_for_move()</title>
<updated>2014-09-27T03:11:15Z</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2014-09-27T03:11:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=986c01942afb8eb6cc1708e721292db23b715d4e'/>
<id>urn:sha1:986c01942afb8eb6cc1708e721292db23b715d4e</id>
<content type='text'>
... renaming it into dentry_unlock_for_move() and making it more
symmetric with dentry_lock_for_move().

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>kill __d_materialise_dentry()</title>
<updated>2014-09-27T03:06:14Z</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2014-09-27T03:06:14Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=63cf427a570dd8eb66d8cfc4c2ed9367811d6d3e'/>
<id>urn:sha1:63cf427a570dd8eb66d8cfc4c2ed9367811d6d3e</id>
<content type='text'>
it folds into __d_move() now

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
</feed>
