<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs, branch v2.6.21.2</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/fs?h=v2.6.21.2</id>
<link rel='self' href='https://git.amat.us/linux/atom/fs?h=v2.6.21.2'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2007-05-23T21:32:54Z</updated>
<entry>
<title>[PATCH] JFS: Fix race waking up jfsIO kernel thread</title>
<updated>2007-05-23T21:32:54Z</updated>
<author>
<name>Dave Kleikamp</name>
<email>shaggy@linux.vnet.ibm.com</email>
</author>
<published>2007-05-16T03:53:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7fe23b5d8557c09a01d5a089878f25d52b5f1c05'/>
<id>urn:sha1:7fe23b5d8557c09a01d5a089878f25d52b5f1c05</id>
<content type='text'>
It's possible for a journal I/O request to be added to the log_redrive
queue and the jfsIO thread to be awakened after the thread releases
log_redrive_lock but before it sets its state to TASK_INTERRUPTIBLE.

The jfsIO thread should set the state before giving up the spinlock, so
the waking thread will really wake it.

Signed-off-by: Dave Kleikamp &lt;shaggy@linux.vnet.ibm.com&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] udf: decrement correct link count in udf_rmdir</title>
<updated>2007-05-23T21:32:46Z</updated>
<author>
<name>Stephen Mollett</name>
<email>molletts@yahoo.com</email>
</author>
<published>2007-05-08T07:31:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=35196129ffcfe139f6dd90cba41262450b81172b'/>
<id>urn:sha1:35196129ffcfe139f6dd90cba41262450b81172b</id>
<content type='text'>
It appears that a minor thinko occurred in udf_rmdir and the
(already-cleared) link count on the directory that is being removed was
being decremented instead of the link count on its parent directory.  This
gives rise to lots of kernel messages similar to:

UDF-fs warning (device loop1): udf_rmdir: empty directory has nlink != 2 (8)

when removing directory trees.  No other ill effects have been observed but
I guess it could theoretically result in the link count overflowing on a
very long-lived, much modified directory.

Signed-off-by: Stephen Mollett &lt;molletts@yahoo.com&gt;
Cc: Dave Hansen &lt;haveblue@us.ibm.com&gt;
Cc: Jan Kara &lt;jack@ucw.cz&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] fat: fix VFAT compat ioctls on 64-bit systems</title>
<updated>2007-05-23T21:32:46Z</updated>
<author>
<name>OGAWA Hirofumi</name>
<email>hirofumi@mail.parknet.co.jp</email>
</author>
<published>2007-05-08T07:31:28Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=041f08ecb28db5be31e6de339c7abb3fe369ec53'/>
<id>urn:sha1:041f08ecb28db5be31e6de339c7abb3fe369ec53</id>
<content type='text'>
If you compile and run the below test case in an msdos or vfat directory on
an x86-64 system with -m32 you'll get garbage in the kernel_dirent struct
followed by a SIGSEGV.

The patch fixes this.

Reported and initial fix by Bart Oldeman

#include &lt;sys/types.h&gt;
#include &lt;sys/ioctl.h&gt;
#include &lt;dirent.h&gt;
#include &lt;stdio.h&gt;
#include &lt;unistd.h&gt;
#include &lt;fcntl.h&gt;
struct kernel_dirent {
         long            d_ino;
         long		d_off;
         unsigned short  d_reclen;
         char            d_name[256]; /* We must not include limits.h! */
};
#define VFAT_IOCTL_READDIR_BOTH  _IOR('r', 1, struct kernel_dirent [2])
#define VFAT_IOCTL_READDIR_SHORT  _IOR('r', 2, struct kernel_dirent [2])

int main(void)
{
         int fd = open(".", O_RDONLY);
         struct kernel_dirent de[2];

         while (1) {
                 int i = ioctl(fd, VFAT_IOCTL_READDIR_BOTH, (long)de);
                 if (i == -1) break;
                 if (de[0].d_reclen == 0) break;
                 printf("SFN: reclen=%2d off=%d ino=%d, %-12s",
 		       de[0].d_reclen, de[0].d_off, de[0].d_ino, de[0].d_name);
 		if (de[1].d_reclen)
 		  printf("\tLFN: reclen=%2d off=%d ino=%d, %s",
 		    de[1].d_reclen, de[1].d_off, de[1].d_ino, de[1].d_name);
 		printf("\n");
         }
         return 0;
}

Signed-off-by: Bart Oldeman &lt;bartoldeman@users.sourceforge.net&gt;
Signed-off-by: OGAWA Hirofumi &lt;hirofumi@mail.parknet.co.jp&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] knfsd: Avoid use of unitialised variables on error path when nfs exports.</title>
<updated>2007-05-23T21:32:44Z</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2007-05-07T00:35:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2ef502b375ad3bfd54c116ffe3b0e25a73e732ad'/>
<id>urn:sha1:2ef502b375ad3bfd54c116ffe3b0e25a73e732ad</id>
<content type='text'>
We need to zero various parts of 'exp' before any 'goto out', otherwise
when we go to free the contents... we die.

Signed-off-by: Neil Brown &lt;neilb@suse.de&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] reiserfs: suppress lockdep warning</title>
<updated>2007-05-23T21:32:41Z</updated>
<author>
<name>Jeff Mahoney</name>
<email>jeffm@suse.de</email>
</author>
<published>2007-04-30T22:09:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=497e7e4b19c35d73a6c664de09a155625164544d'/>
<id>urn:sha1:497e7e4b19c35d73a6c664de09a155625164544d</id>
<content type='text'>
We're getting lockdep warnings due to a post-2.6.21-rc7 bugfix.

The xattr_sem can never be taken in the manner described. Internal inodes
are protected by I_PRIVATE.  Add the appropriate annotation.

Cc: &lt;stable@kernel.org&gt;
Cc: "Antonino A. Daplas" &lt;adaplas@pol.net&gt;
Cc: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>reiserfs: fix xattr root locking/refcount bug</title>
<updated>2007-04-24T15:23:09Z</updated>
<author>
<name>Jeff Mahoney</name>
<email>jeffm@suse.com</email>
</author>
<published>2007-04-23T21:41:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9b7f375505f5611efb562065b57814b28a81abc3'/>
<id>urn:sha1:9b7f375505f5611efb562065b57814b28a81abc3</id>
<content type='text'>
The listxattr() and getxattr() operations are only protected by a read
lock.  As a result, if either of these operations run in parallel, a race
condition exists where the xattr_root will end up being cached twice, which
results in the leaking of a reference and a BUG() on umount.

This patch refactors get_xa_root(), __get_xa_root(), and create_xa_root(),
into one get_xa_root() function that takes the appropriate locking around
the entire critical section.

Reported, diagnosed and tested by Andrea Righi &lt;a.righi@cineca.it&gt;

Signed-off-by: Jeff Mahoney &lt;jeffm@suse.com&gt;
Cc: Andrea Righi &lt;a.righi@cineca.it&gt;
Cc: "Vladimir V. Saveliev" &lt;vs@namesys.com&gt;
Cc: Edward Shishkin &lt;edward@namesys.com&gt;
Cc: Alex Zarochentsev &lt;zam@namesys.com&gt;
Cc: &lt;stable@kernel.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>v9fs: don't use primary fid when removing file</title>
<updated>2007-04-24T15:23:08Z</updated>
<author>
<name>Latchesar Ionkov</name>
<email>lucho@ionkov.net</email>
</author>
<published>2007-04-23T21:41:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c959df9f01cfb2f43b4d1f58631ee1e9c50541b6'/>
<id>urn:sha1:c959df9f01cfb2f43b4d1f58631ee1e9c50541b6</id>
<content type='text'>
v9fs_insert uses v9fs_fid_lookup (which also locks the fid) to get the
primary fid associated with the dentry and destroys the v9fs_fid struct
after removing the file.  If another process called v9fs_fid_lookup on the
same dentry, it may wait undefinitely for the fid's lock (as the struct is
freed).

This patch changes v9fs_remove to use a cloned fid, so the primary fid is
not locked and freed.

Signed-off-by: Latchesar Ionkov &lt;lucho@ionkov.net&gt;
Cc: Eric Van Hensbergen &lt;ericvh@hera.kernel.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>NFS: Fix race in nfs_set_page_dirty</title>
<updated>2007-04-21T05:56:30Z</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2007-04-20T20:12:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2b82f190c81bf1524447c021df4e9ce8ef379bd5'/>
<id>urn:sha1:2b82f190c81bf1524447c021df4e9ce8ef379bd5</id>
<content type='text'>
Protect nfs_set_page_dirty() against races with nfs_inode_add_request.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>NFS: Fix the 'desynchronized value of nfs_i.ncommit' error</title>
<updated>2007-04-21T05:56:29Z</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2007-04-20T20:12:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=612c9384fd0486686699f7d49b774f0c7a79c511'/>
<id>urn:sha1:612c9384fd0486686699f7d49b774f0c7a79c511</id>
<content type='text'>
Redirtying a request that is already marked for commit will screw up the
accounting for NR_UNSTABLE_NFS as well as nfs_i.ncommit.
Ensure that all requests on the commit queue are labelled with the
PG_NEED_COMMIT flag, and avoid moving them onto the dirty list inside
nfs_page_mark_flush().

Also inline nfs_mark_request_dirty() into nfs_page_mark_flush() for
atomicity reasons. Avoid dropping the spinlock until we're done marking the
request in the radix tree and have added it to the -&gt;dirty list.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>NFS: Don't clear PG_writeback until after we've processed unstable writes</title>
<updated>2007-04-21T05:56:29Z</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2007-04-20T20:12:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6d677e3504cd173b2ff7fc393ee4241b3c0f92a6'/>
<id>urn:sha1:6d677e3504cd173b2ff7fc393ee4241b3c0f92a6</id>
<content type='text'>
Ensure that we don't release the PG_writeback lock until after the page has
either been redirtied, or queued on the nfs_inode 'commit' list.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
</feed>
