diff options
Diffstat (limited to 'fs/ext2')
-rw-r--r-- | fs/ext2/ialloc.c | 8 | ||||
-rw-r--r-- | fs/ext2/ioctl.c | 3 |
2 files changed, 3 insertions, 8 deletions
diff --git a/fs/ext2/ialloc.c b/fs/ext2/ialloc.c index b5598e1393d9..66321a877e74 100644 --- a/fs/ext2/ialloc.c +++ b/fs/ext2/ialloc.c | |||
@@ -565,12 +565,8 @@ got: | |||
565 | inode->i_blocks = 0; | 565 | inode->i_blocks = 0; |
566 | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC; | 566 | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC; |
567 | memset(ei->i_data, 0, sizeof(ei->i_data)); | 567 | memset(ei->i_data, 0, sizeof(ei->i_data)); |
568 | ei->i_flags = EXT2_I(dir)->i_flags & EXT2_FL_INHERITED; | 568 | ei->i_flags = |
569 | if (S_ISLNK(mode)) | 569 | ext2_mask_flags(mode, EXT2_I(dir)->i_flags & EXT2_FL_INHERITED); |
570 | ei->i_flags &= ~(EXT2_IMMUTABLE_FL|EXT2_APPEND_FL); | ||
571 | /* dirsync is only applied to directories */ | ||
572 | if (!S_ISDIR(mode)) | ||
573 | ei->i_flags &= ~EXT2_DIRSYNC_FL; | ||
574 | ei->i_faddr = 0; | 570 | ei->i_faddr = 0; |
575 | ei->i_frag_no = 0; | 571 | ei->i_frag_no = 0; |
576 | ei->i_frag_size = 0; | 572 | ei->i_frag_size = 0; |
diff --git a/fs/ext2/ioctl.c b/fs/ext2/ioctl.c index de876fa793e1..7cb4badef927 100644 --- a/fs/ext2/ioctl.c +++ b/fs/ext2/ioctl.c | |||
@@ -50,8 +50,7 @@ long ext2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) | |||
50 | goto setflags_out; | 50 | goto setflags_out; |
51 | } | 51 | } |
52 | 52 | ||
53 | if (!S_ISDIR(inode->i_mode)) | 53 | flags = ext2_mask_flags(inode->i_mode, flags); |
54 | flags &= ~EXT2_DIRSYNC_FL; | ||
55 | 54 | ||
56 | mutex_lock(&inode->i_mutex); | 55 | mutex_lock(&inode->i_mutex); |
57 | /* Is it quota file? Do not allow user to mess with it */ | 56 | /* Is it quota file? Do not allow user to mess with it */ |