<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/fat/file.c, branch linux-2.6.28.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.28.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.28.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2008-11-06T23:41:21Z</updated>
<entry>
<title>fat: Fix ATTR_RO for directory</title>
<updated>2008-11-06T23:41:21Z</updated>
<author>
<name>OGAWA Hirofumi</name>
</author>
<published>2008-11-06T20:53:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dfc209c0064efef5590f608056a48b61a5cac09c'/>
<id>urn:sha1:dfc209c0064efef5590f608056a48b61a5cac09c</id>
<content type='text'>
FAT has the ATTR_RO (read-only) attribute. But on Windows, the ATTR_RO
of the directory will be just ignored actually, and is used by only
applications as flag. E.g. it's setted for the customized folder by
Explorer.

http://msdn2.microsoft.com/en-us/library/aa969337.aspx

This adds "rodir" option. If user specified it, ATTR_RO is used as
read-only flag even if it's the directory. Otherwise, inode-&gt;i_mode
is not used to hold ATTR_RO (i.e. fat_mode_can_save_ro() returns 0).

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: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>fat: Fix ATTR_RO in the case of (~umask &amp; S_WUGO) == 0</title>
<updated>2008-11-06T23:41:21Z</updated>
<author>
<name>OGAWA Hirofumi</name>
</author>
<published>2008-11-06T20:53:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9183482f5d4a2de00f66641b974e7f351d41b675'/>
<id>urn:sha1:9183482f5d4a2de00f66641b974e7f351d41b675</id>
<content type='text'>
If inode-&gt;i_mode doesn't have S_WUGO, current code assumes it means
ATTR_RO.  However, if (~[ufd]mask &amp; S_WUGO) == 0, inode-&gt;i_mode can't
hold S_WUGO. Therefore the updated directory entry will always have
ATTR_RO.

This adds fat_mode_can_hold_ro() to check it. And if inode-&gt;i_mode
can't hold, uses -i_attrs to hold ATTR_RO instead.

With this, we don't set ATTR_RO unless users change it via ioctl() if
(~[ufd]mask &amp; S_WUGO) == 0.

And on FAT_IOCTL_GET_ATTRIBUTES path, this adds -&gt;i_mutex to it for
not returning the partially updated attributes by FAT_IOCTL_SET_ATTRIBUTES
to userland.

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: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>fat: Cleanup FAT attribute stuff</title>
<updated>2008-11-06T23:41:21Z</updated>
<author>
<name>OGAWA Hirofumi</name>
</author>
<published>2008-11-06T20:53:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9c0aa1b87bf541affef519eb4879ce7c5a5941ae'/>
<id>urn:sha1:9c0aa1b87bf541affef519eb4879ce7c5a5941ae</id>
<content type='text'>
This adds three helpers:

fat_make_attrs() - makes FAT attributes from inode.
fat_make_mode()  - makes mode_t from FAT attributes.
fat_save_attrs() - saves FAT attributes to inode.

Then this replaces: MSDOS_MKMODE() by fat_make_mode(), fat_attr() by
fat_make_attrs(), -&gt;i_attrs = attr &amp; ATTR_UNUSED by fat_save_attrs().
And for root inode, those is used with ATTR_DIR instead of bogus
ATTR_NONE.

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: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>fat: split include/msdos_fs.h</title>
<updated>2008-11-06T23:41:20Z</updated>
<author>
<name>OGAWA Hirofumi</name>
</author>
<published>2008-11-06T20:53:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9e975dae2970d22557662761c8505ce9fd165684'/>
<id>urn:sha1:9e975dae2970d22557662761c8505ce9fd165684</id>
<content type='text'>
This splits __KERNEL__ stuff in include/msdos_fs.h into fs/fat/fat.h.

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: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>fat: Fix allow_utime option</title>
<updated>2008-08-02T16:13:55Z</updated>
<author>
<name>OGAWA Hirofumi</name>
</author>
<published>2008-08-02T04:59:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=17263849c7ad2279667dd298083eceefcd1b5845'/>
<id>urn:sha1:17263849c7ad2279667dd298083eceefcd1b5845</id>
<content type='text'>
FAT has to handle the newly introduced ATTR_TIMES_SET for allow_utime
option.

Signed-off-by: OGAWA Hirofumi &lt;hirofumi@mail.parknet.co.jp&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>[patch 3/4] fat: dont call notify_change</title>
<updated>2008-07-27T00:53:27Z</updated>
<author>
<name>Miklos Szeredi</name>
</author>
<published>2008-07-01T13:01:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b1da47e29e467f1ec36dc78d009bfb109fd533c7'/>
<id>urn:sha1:b1da47e29e467f1ec36dc78d009bfb109fd533c7</id>
<content type='text'>
The FAT_IOCTL_SET_ATTRIBUTES ioctl() calls notify_change() to change
the file mode before changing the inode attributes.  Replace with
explicit calls to security_inode_setattr(), fat_setattr() and
fsnotify_change().

This is equivalent to the original.  The reason it is needed, is that
later in the series we move the immutable check into notify_change().
That would break the FAT_IOCTL_SET_ATTRIBUTES ioctl, as it needs to
perform the mode change regardless of the immutability of the file.

[Fix error if fat is built as a module.  Thanks to OGAWA Hirofumi for
noticing.]

Signed-off-by: Miklos Szeredi &lt;mszeredi@suse.cz&gt;
Acked-by: OGAWA Hirofumi &lt;hirofumi@mail.parknet.co.jp&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>Merge commit 'v2.6.26' into bkl-removal</title>
<updated>2008-07-14T21:29:34Z</updated>
<author>
<name>Jonathan Corbet</name>
</author>
<published>2008-07-14T21:29:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2fceef397f9880b212a74c418290ce69e7ac00eb'/>
<id>urn:sha1:2fceef397f9880b212a74c418290ce69e7ac00eb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make FAT users happier by not deadlocking</title>
<updated>2008-07-02T21:06:27Z</updated>
<author>
<name>Jonathan Corbet</name>
</author>
<published>2008-05-29T23:14:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9c20616c385ebeaa30257ef5d35e8f346db4ee32'/>
<id>urn:sha1:9c20616c385ebeaa30257ef5d35e8f346db4ee32</id>
<content type='text'>
The FAT BKL removal patch can cause deadlocks.  It turns out that the new
lock_super() calls are unneeded, remove them (as directed by Linus).

Reported-by: "Tony Luck" &lt;tony.luck@intel.com&gt;
Signed-off-by: Jonathan Corbet &lt;corbet@lwn.net&gt;
</content>
</entry>
<entry>
<title>Replace BKL with superblock lock in fat/msdos/vfat</title>
<updated>2008-06-20T20:05:54Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2008-05-20T02:53:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8f5934278d1d86590244c2791b28f77d67466007'/>
<id>urn:sha1:8f5934278d1d86590244c2791b28f77d67466007</id>
<content type='text'>
This replaces the use of the BKL in the FAT family of filesystems with the
existing superblock lock instead.

The code already appears to do mostly proper locking with its own private
spinlocks (and mutexes), but while the BKL could possibly have been
dropped entirely, converting it to use the superblock lock (which is just
a regular mutex) is the conservative thing to do.

As a per-filesystem mutex, it not only won't have any of the possible
latency issues related to the BKL, but the lock is obviously private to
the particular filesystem instance and will thus not cause problems for
entirely unrelated users like the BKL can.

Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: OGAWA Hirofumi &lt;hirofumi@mail.parknet.co.jp&gt;
Signed-off-by: Jonathan Corbet &lt;corbet@lwn.net&gt;
</content>
</entry>
<entry>
<title>fat: relax the permission check of fat_setattr()</title>
<updated>2008-06-13T01:05:39Z</updated>
<author>
<name>OGAWA Hirofumi</name>
</author>
<published>2008-06-12T22:21:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2d518f84e5ecd1d71df0e6ac5176d212f68c27ce'/>
<id>urn:sha1:2d518f84e5ecd1d71df0e6ac5176d212f68c27ce</id>
<content type='text'>
New chmod() allows only acceptable permission, and if not acceptable, it
returns -EPERM.  Old one allows even if it can't store permission to on
disk inode.  But it seems too strict for users.

E.g.  https://bugzilla.redhat.com/show_bug.cgi?id=449080: With new one,
rsync couldn't create the temporary file.

So, this patch allows like old one, but now it doesn't change the
permission if it can't store, and it returns 0.

Also, this patch fixes missing check.

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: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
</feed>
