diff options
author | OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> | 2008-08-02 00:59:37 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-08-02 12:13:55 -0400 |
commit | 17263849c7ad2279667dd298083eceefcd1b5845 (patch) | |
tree | f723958f21f8737bd52758505737468c1fc69c42 /fs | |
parent | 84209e02de48d72289650cc5a7ae8dd18223620f (diff) |
fat: Fix allow_utime option
FAT has to handle the newly introduced ATTR_TIMES_SET for allow_utime
option.
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/fat/file.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/fat/file.c b/fs/fat/file.c index 8707a8cfa02c..ddde37025ca6 100644 --- a/fs/fat/file.c +++ b/fs/fat/file.c | |||
@@ -313,6 +313,8 @@ static int fat_allow_set_time(struct msdos_sb_info *sbi, struct inode *inode) | |||
313 | return 0; | 313 | return 0; |
314 | } | 314 | } |
315 | 315 | ||
316 | #define TIMES_SET_FLAGS (ATTR_MTIME_SET | ATTR_ATIME_SET | ATTR_TIMES_SET) | ||
317 | |||
316 | int fat_setattr(struct dentry *dentry, struct iattr *attr) | 318 | int fat_setattr(struct dentry *dentry, struct iattr *attr) |
317 | { | 319 | { |
318 | struct msdos_sb_info *sbi = MSDOS_SB(dentry->d_sb); | 320 | struct msdos_sb_info *sbi = MSDOS_SB(dentry->d_sb); |
@@ -336,9 +338,9 @@ int fat_setattr(struct dentry *dentry, struct iattr *attr) | |||
336 | 338 | ||
337 | /* Check for setting the inode time. */ | 339 | /* Check for setting the inode time. */ |
338 | ia_valid = attr->ia_valid; | 340 | ia_valid = attr->ia_valid; |
339 | if (ia_valid & (ATTR_MTIME_SET | ATTR_ATIME_SET)) { | 341 | if (ia_valid & TIMES_SET_FLAGS) { |
340 | if (fat_allow_set_time(sbi, inode)) | 342 | if (fat_allow_set_time(sbi, inode)) |
341 | attr->ia_valid &= ~(ATTR_MTIME_SET | ATTR_ATIME_SET); | 343 | attr->ia_valid &= ~TIMES_SET_FLAGS; |
342 | } | 344 | } |
343 | 345 | ||
344 | error = inode_change_ok(inode, attr); | 346 | error = inode_change_ok(inode, attr); |