diff options
Diffstat (limited to 'fs/ext3')
-rw-r--r-- | fs/ext3/ialloc.c | 8 | ||||
-rw-r--r-- | fs/ext3/ioctl.c | 3 |
2 files changed, 3 insertions, 8 deletions
diff --git a/fs/ext3/ialloc.c b/fs/ext3/ialloc.c index ba9186a21d1e..8de6c720e510 100644 --- a/fs/ext3/ialloc.c +++ b/fs/ext3/ialloc.c | |||
@@ -559,12 +559,8 @@ got: | |||
559 | ei->i_dir_start_lookup = 0; | 559 | ei->i_dir_start_lookup = 0; |
560 | ei->i_disksize = 0; | 560 | ei->i_disksize = 0; |
561 | 561 | ||
562 | ei->i_flags = EXT3_I(dir)->i_flags & EXT3_FL_INHERITED; | 562 | ei->i_flags = |
563 | if (S_ISLNK(mode)) | 563 | ext3_mask_flags(mode, EXT3_I(dir)->i_flags & EXT3_FL_INHERITED); |
564 | ei->i_flags &= ~(EXT3_IMMUTABLE_FL|EXT3_APPEND_FL); | ||
565 | /* dirsync only applies to directories */ | ||
566 | if (!S_ISDIR(mode)) | ||
567 | ei->i_flags &= ~EXT3_DIRSYNC_FL; | ||
568 | #ifdef EXT3_FRAGMENTS | 564 | #ifdef EXT3_FRAGMENTS |
569 | ei->i_faddr = 0; | 565 | ei->i_faddr = 0; |
570 | ei->i_frag_no = 0; | 566 | ei->i_frag_no = 0; |
diff --git a/fs/ext3/ioctl.c b/fs/ext3/ioctl.c index b7394d05ee8e..5e86ce9a86e0 100644 --- a/fs/ext3/ioctl.c +++ b/fs/ext3/ioctl.c | |||
@@ -53,8 +53,7 @@ int ext3_ioctl (struct inode * inode, struct file * filp, unsigned int cmd, | |||
53 | goto flags_out; | 53 | goto flags_out; |
54 | } | 54 | } |
55 | 55 | ||
56 | if (!S_ISDIR(inode->i_mode)) | 56 | flags = ext3_mask_flags(inode->i_mode, flags); |
57 | flags &= ~EXT3_DIRSYNC_FL; | ||
58 | 57 | ||
59 | mutex_lock(&inode->i_mutex); | 58 | mutex_lock(&inode->i_mutex); |
60 | /* Is it quota file? Do not allow user to mess with it */ | 59 | /* Is it quota file? Do not allow user to mess with it */ |