diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-02 14:41:01 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-02 14:41:01 -0400 |
commit | d211858837ff8d8e31942ca7d27e6e08b3b46f5e (patch) | |
tree | a8ec83a791066e64ad02052498dbe39ebefacab9 /fs/ext4 | |
parent | f1f8935a5c38a2c61e86a42bc971a2539eef2211 (diff) | |
parent | f0023bc617ba600956b9226f1806033d7486c8ba (diff) |
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue
* 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue:
vfs: add d_prune dentry operation
vfs: protect i_nlink
filesystems: add set_nlink()
filesystems: add missing nlink wrappers
logfs: remove unnecessary nlink setting
ocfs2: remove unnecessary nlink setting
jfs: remove unnecessary nlink setting
hypfs: remove unnecessary nlink setting
vfs: ignore error on forced remount
readlinkat: ensure we return ENOENT for the empty pathname for normal lookups
vfs: fix dentry leak in simple_fill_super()
Diffstat (limited to 'fs/ext4')
-rw-r--r-- | fs/ext4/ialloc.c | 2 | ||||
-rw-r--r-- | fs/ext4/inode.c | 2 | ||||
-rw-r--r-- | fs/ext4/migrate.c | 2 | ||||
-rw-r--r-- | fs/ext4/namei.c | 8 |
4 files changed, 7 insertions, 7 deletions
diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c index 612bec255c6c..00beb4f9cc4f 100644 --- a/fs/ext4/ialloc.c +++ b/fs/ext4/ialloc.c | |||
@@ -948,7 +948,7 @@ fail_free_drop: | |||
948 | fail_drop: | 948 | fail_drop: |
949 | dquot_drop(inode); | 949 | dquot_drop(inode); |
950 | inode->i_flags |= S_NOQUOTA; | 950 | inode->i_flags |= S_NOQUOTA; |
951 | inode->i_nlink = 0; | 951 | clear_nlink(inode); |
952 | unlock_new_inode(inode); | 952 | unlock_new_inode(inode); |
953 | iput(inode); | 953 | iput(inode); |
954 | brelse(inode_bitmap_bh); | 954 | brelse(inode_bitmap_bh); |
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index f2419a15b81a..cc5a6da030a1 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c | |||
@@ -3791,7 +3791,7 @@ struct inode *ext4_iget(struct super_block *sb, unsigned long ino) | |||
3791 | inode->i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16; | 3791 | inode->i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16; |
3792 | inode->i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16; | 3792 | inode->i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16; |
3793 | } | 3793 | } |
3794 | inode->i_nlink = le16_to_cpu(raw_inode->i_links_count); | 3794 | set_nlink(inode, le16_to_cpu(raw_inode->i_links_count)); |
3795 | 3795 | ||
3796 | ext4_clear_state_flags(ei); /* Only relevant on 32-bit archs */ | 3796 | ext4_clear_state_flags(ei); /* Only relevant on 32-bit archs */ |
3797 | ei->i_dir_start_lookup = 0; | 3797 | ei->i_dir_start_lookup = 0; |
diff --git a/fs/ext4/migrate.c b/fs/ext4/migrate.c index f729377bf043..16ac228dbec6 100644 --- a/fs/ext4/migrate.c +++ b/fs/ext4/migrate.c | |||
@@ -481,7 +481,7 @@ int ext4_ext_migrate(struct inode *inode) | |||
481 | * Set the i_nlink to zero so it will be deleted later | 481 | * Set the i_nlink to zero so it will be deleted later |
482 | * when we drop inode reference. | 482 | * when we drop inode reference. |
483 | */ | 483 | */ |
484 | tmp_inode->i_nlink = 0; | 484 | clear_nlink(tmp_inode); |
485 | 485 | ||
486 | ext4_ext_tree_init(handle, tmp_inode); | 486 | ext4_ext_tree_init(handle, tmp_inode); |
487 | ext4_orphan_add(handle, tmp_inode); | 487 | ext4_orphan_add(handle, tmp_inode); |
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index 2a75eed2ef06..aa4c782c9dd7 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c | |||
@@ -1694,7 +1694,7 @@ static void ext4_inc_count(handle_t *handle, struct inode *inode) | |||
1694 | if (is_dx(inode) && inode->i_nlink > 1) { | 1694 | if (is_dx(inode) && inode->i_nlink > 1) { |
1695 | /* limit is 16-bit i_links_count */ | 1695 | /* limit is 16-bit i_links_count */ |
1696 | if (inode->i_nlink >= EXT4_LINK_MAX || inode->i_nlink == 2) { | 1696 | if (inode->i_nlink >= EXT4_LINK_MAX || inode->i_nlink == 2) { |
1697 | inode->i_nlink = 1; | 1697 | set_nlink(inode, 1); |
1698 | EXT4_SET_RO_COMPAT_FEATURE(inode->i_sb, | 1698 | EXT4_SET_RO_COMPAT_FEATURE(inode->i_sb, |
1699 | EXT4_FEATURE_RO_COMPAT_DIR_NLINK); | 1699 | EXT4_FEATURE_RO_COMPAT_DIR_NLINK); |
1700 | } | 1700 | } |
@@ -1860,7 +1860,7 @@ retry: | |||
1860 | de->name_len = 2; | 1860 | de->name_len = 2; |
1861 | strcpy(de->name, ".."); | 1861 | strcpy(de->name, ".."); |
1862 | ext4_set_de_type(dir->i_sb, de, S_IFDIR); | 1862 | ext4_set_de_type(dir->i_sb, de, S_IFDIR); |
1863 | inode->i_nlink = 2; | 1863 | set_nlink(inode, 2); |
1864 | BUFFER_TRACE(dir_block, "call ext4_handle_dirty_metadata"); | 1864 | BUFFER_TRACE(dir_block, "call ext4_handle_dirty_metadata"); |
1865 | err = ext4_handle_dirty_metadata(handle, inode, dir_block); | 1865 | err = ext4_handle_dirty_metadata(handle, inode, dir_block); |
1866 | if (err) | 1866 | if (err) |
@@ -2213,7 +2213,7 @@ static int ext4_unlink(struct inode *dir, struct dentry *dentry) | |||
2213 | ext4_warning(inode->i_sb, | 2213 | ext4_warning(inode->i_sb, |
2214 | "Deleting nonexistent file (%lu), %d", | 2214 | "Deleting nonexistent file (%lu), %d", |
2215 | inode->i_ino, inode->i_nlink); | 2215 | inode->i_ino, inode->i_nlink); |
2216 | inode->i_nlink = 1; | 2216 | set_nlink(inode, 1); |
2217 | } | 2217 | } |
2218 | retval = ext4_delete_entry(handle, dir, de, bh); | 2218 | retval = ext4_delete_entry(handle, dir, de, bh); |
2219 | if (retval) | 2219 | if (retval) |
@@ -2538,7 +2538,7 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
2538 | if (new_inode) { | 2538 | if (new_inode) { |
2539 | /* checked empty_dir above, can't have another parent, | 2539 | /* checked empty_dir above, can't have another parent, |
2540 | * ext4_dec_count() won't work for many-linked dirs */ | 2540 | * ext4_dec_count() won't work for many-linked dirs */ |
2541 | new_inode->i_nlink = 0; | 2541 | clear_nlink(new_inode); |
2542 | } else { | 2542 | } else { |
2543 | ext4_inc_count(handle, new_dir); | 2543 | ext4_inc_count(handle, new_dir); |
2544 | ext4_update_dx_flag(new_dir); | 2544 | ext4_update_dx_flag(new_dir); |