diff options
author | Miklos Szeredi <mszeredi@suse.cz> | 2011-10-28 08:13:29 -0400 |
---|---|---|
committer | Christoph Hellwig <hch@serles.lst.de> | 2011-11-02 07:53:43 -0400 |
commit | bfe8684869601dacfcb2cd69ef8cfd9045f62170 (patch) | |
tree | 4e213aaa766b26f43f0f9ec7998a7745239d9377 | |
parent | 6d6b77f163c7eabedbba00ed2abb7d4a570bff76 (diff) |
filesystems: add set_nlink()
Replace remaining direct i_nlink updates with a new set_nlink()
updater function.
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Tested-by: Toshiyuki Okajima <toshi.okajima@jp.fujitsu.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
81 files changed, 163 insertions, 148 deletions
diff --git a/arch/s390/hypfs/inode.c b/arch/s390/hypfs/inode.c index baa82f8dd076..481f4f76f664 100644 --- a/arch/s390/hypfs/inode.c +++ b/arch/s390/hypfs/inode.c | |||
@@ -108,7 +108,7 @@ static struct inode *hypfs_make_inode(struct super_block *sb, int mode) | |||
108 | ret->i_gid = hypfs_info->gid; | 108 | ret->i_gid = hypfs_info->gid; |
109 | ret->i_atime = ret->i_mtime = ret->i_ctime = CURRENT_TIME; | 109 | ret->i_atime = ret->i_mtime = ret->i_ctime = CURRENT_TIME; |
110 | if (mode & S_IFDIR) | 110 | if (mode & S_IFDIR) |
111 | ret->i_nlink = 2; | 111 | set_nlink(ret, 2); |
112 | } | 112 | } |
113 | return ret; | 113 | return ret; |
114 | } | 114 | } |
diff --git a/drivers/staging/pohmelfs/inode.c b/drivers/staging/pohmelfs/inode.c index f3c6060c96b8..7a1955583b7d 100644 --- a/drivers/staging/pohmelfs/inode.c +++ b/drivers/staging/pohmelfs/inode.c | |||
@@ -1197,7 +1197,7 @@ const struct inode_operations pohmelfs_file_inode_operations = { | |||
1197 | void pohmelfs_fill_inode(struct inode *inode, struct netfs_inode_info *info) | 1197 | void pohmelfs_fill_inode(struct inode *inode, struct netfs_inode_info *info) |
1198 | { | 1198 | { |
1199 | inode->i_mode = info->mode; | 1199 | inode->i_mode = info->mode; |
1200 | inode->i_nlink = info->nlink; | 1200 | set_nlink(inode, info->nlink); |
1201 | inode->i_uid = info->uid; | 1201 | inode->i_uid = info->uid; |
1202 | inode->i_gid = info->gid; | 1202 | inode->i_gid = info->gid; |
1203 | inode->i_blocks = info->blocks; | 1203 | inode->i_blocks = info->blocks; |
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c index b5a1076aaa6c..879ed8851737 100644 --- a/fs/9p/vfs_inode.c +++ b/fs/9p/vfs_inode.c | |||
@@ -1138,7 +1138,7 @@ v9fs_stat2inode(struct p9_wstat *stat, struct inode *inode, | |||
1138 | struct v9fs_session_info *v9ses = sb->s_fs_info; | 1138 | struct v9fs_session_info *v9ses = sb->s_fs_info; |
1139 | struct v9fs_inode *v9inode = V9FS_I(inode); | 1139 | struct v9fs_inode *v9inode = V9FS_I(inode); |
1140 | 1140 | ||
1141 | inode->i_nlink = 1; | 1141 | set_nlink(inode, 1); |
1142 | 1142 | ||
1143 | inode->i_atime.tv_sec = stat->atime; | 1143 | inode->i_atime.tv_sec = stat->atime; |
1144 | inode->i_mtime.tv_sec = stat->mtime; | 1144 | inode->i_mtime.tv_sec = stat->mtime; |
@@ -1164,7 +1164,7 @@ v9fs_stat2inode(struct p9_wstat *stat, struct inode *inode, | |||
1164 | /* HARDLINKCOUNT %u */ | 1164 | /* HARDLINKCOUNT %u */ |
1165 | sscanf(ext, "%13s %u", tag_name, &i_nlink); | 1165 | sscanf(ext, "%13s %u", tag_name, &i_nlink); |
1166 | if (!strncmp(tag_name, "HARDLINKCOUNT", 13)) | 1166 | if (!strncmp(tag_name, "HARDLINKCOUNT", 13)) |
1167 | inode->i_nlink = i_nlink; | 1167 | set_nlink(inode, i_nlink); |
1168 | } | 1168 | } |
1169 | } | 1169 | } |
1170 | mode = stat->mode & S_IALLUGO; | 1170 | mode = stat->mode & S_IALLUGO; |
diff --git a/fs/9p/vfs_inode_dotl.c b/fs/9p/vfs_inode_dotl.c index aded79fcd5cf..0b5745e21946 100644 --- a/fs/9p/vfs_inode_dotl.c +++ b/fs/9p/vfs_inode_dotl.c | |||
@@ -606,7 +606,7 @@ v9fs_stat2inode_dotl(struct p9_stat_dotl *stat, struct inode *inode) | |||
606 | inode->i_ctime.tv_nsec = stat->st_ctime_nsec; | 606 | inode->i_ctime.tv_nsec = stat->st_ctime_nsec; |
607 | inode->i_uid = stat->st_uid; | 607 | inode->i_uid = stat->st_uid; |
608 | inode->i_gid = stat->st_gid; | 608 | inode->i_gid = stat->st_gid; |
609 | inode->i_nlink = stat->st_nlink; | 609 | set_nlink(inode, stat->st_nlink); |
610 | 610 | ||
611 | mode = stat->st_mode & S_IALLUGO; | 611 | mode = stat->st_mode & S_IALLUGO; |
612 | mode |= inode->i_mode & ~S_IALLUGO; | 612 | mode |= inode->i_mode & ~S_IALLUGO; |
@@ -632,7 +632,7 @@ v9fs_stat2inode_dotl(struct p9_stat_dotl *stat, struct inode *inode) | |||
632 | if (stat->st_result_mask & P9_STATS_GID) | 632 | if (stat->st_result_mask & P9_STATS_GID) |
633 | inode->i_gid = stat->st_gid; | 633 | inode->i_gid = stat->st_gid; |
634 | if (stat->st_result_mask & P9_STATS_NLINK) | 634 | if (stat->st_result_mask & P9_STATS_NLINK) |
635 | inode->i_nlink = stat->st_nlink; | 635 | set_nlink(inode, stat->st_nlink); |
636 | if (stat->st_result_mask & P9_STATS_MODE) { | 636 | if (stat->st_result_mask & P9_STATS_MODE) { |
637 | inode->i_mode = stat->st_mode; | 637 | inode->i_mode = stat->st_mode; |
638 | if ((S_ISBLK(inode->i_mode)) || | 638 | if ((S_ISBLK(inode->i_mode)) || |
diff --git a/fs/adfs/inode.c b/fs/adfs/inode.c index d5250c5aae21..1dab6a174d6a 100644 --- a/fs/adfs/inode.c +++ b/fs/adfs/inode.c | |||
@@ -247,7 +247,7 @@ adfs_iget(struct super_block *sb, struct object_info *obj) | |||
247 | inode->i_gid = ADFS_SB(sb)->s_gid; | 247 | inode->i_gid = ADFS_SB(sb)->s_gid; |
248 | inode->i_ino = obj->file_id; | 248 | inode->i_ino = obj->file_id; |
249 | inode->i_size = obj->size; | 249 | inode->i_size = obj->size; |
250 | inode->i_nlink = 2; | 250 | set_nlink(inode, 2); |
251 | inode->i_blocks = (inode->i_size + sb->s_blocksize - 1) >> | 251 | inode->i_blocks = (inode->i_size + sb->s_blocksize - 1) >> |
252 | sb->s_blocksize_bits; | 252 | sb->s_blocksize_bits; |
253 | 253 | ||
diff --git a/fs/affs/amigaffs.c b/fs/affs/amigaffs.c index 8f12723bbc97..de37ec842340 100644 --- a/fs/affs/amigaffs.c +++ b/fs/affs/amigaffs.c | |||
@@ -215,7 +215,7 @@ affs_remove_link(struct dentry *dentry) | |||
215 | break; | 215 | break; |
216 | default: | 216 | default: |
217 | if (!AFFS_TAIL(sb, bh)->link_chain) | 217 | if (!AFFS_TAIL(sb, bh)->link_chain) |
218 | inode->i_nlink = 1; | 218 | set_nlink(inode, 1); |
219 | } | 219 | } |
220 | affs_free_block(sb, link_ino); | 220 | affs_free_block(sb, link_ino); |
221 | goto done; | 221 | goto done; |
diff --git a/fs/affs/inode.c b/fs/affs/inode.c index 5d828903ac69..88a4b0b50058 100644 --- a/fs/affs/inode.c +++ b/fs/affs/inode.c | |||
@@ -54,7 +54,7 @@ struct inode *affs_iget(struct super_block *sb, unsigned long ino) | |||
54 | prot = be32_to_cpu(tail->protect); | 54 | prot = be32_to_cpu(tail->protect); |
55 | 55 | ||
56 | inode->i_size = 0; | 56 | inode->i_size = 0; |
57 | inode->i_nlink = 1; | 57 | set_nlink(inode, 1); |
58 | inode->i_mode = 0; | 58 | inode->i_mode = 0; |
59 | AFFS_I(inode)->i_extcnt = 1; | 59 | AFFS_I(inode)->i_extcnt = 1; |
60 | AFFS_I(inode)->i_ext_last = ~1; | 60 | AFFS_I(inode)->i_ext_last = ~1; |
@@ -137,7 +137,7 @@ struct inode *affs_iget(struct super_block *sb, unsigned long ino) | |||
137 | sbi->s_hashsize + 1; | 137 | sbi->s_hashsize + 1; |
138 | } | 138 | } |
139 | if (tail->link_chain) | 139 | if (tail->link_chain) |
140 | inode->i_nlink = 2; | 140 | set_nlink(inode, 2); |
141 | inode->i_mapping->a_ops = (sbi->s_flags & SF_OFS) ? &affs_aops_ofs : &affs_aops; | 141 | inode->i_mapping->a_ops = (sbi->s_flags & SF_OFS) ? &affs_aops_ofs : &affs_aops; |
142 | inode->i_op = &affs_file_inode_operations; | 142 | inode->i_op = &affs_file_inode_operations; |
143 | inode->i_fop = &affs_file_operations; | 143 | inode->i_fop = &affs_file_operations; |
@@ -304,7 +304,7 @@ affs_new_inode(struct inode *dir) | |||
304 | inode->i_uid = current_fsuid(); | 304 | inode->i_uid = current_fsuid(); |
305 | inode->i_gid = current_fsgid(); | 305 | inode->i_gid = current_fsgid(); |
306 | inode->i_ino = block; | 306 | inode->i_ino = block; |
307 | inode->i_nlink = 1; | 307 | set_nlink(inode, 1); |
308 | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC; | 308 | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC; |
309 | atomic_set(&AFFS_I(inode)->i_opencnt, 0); | 309 | atomic_set(&AFFS_I(inode)->i_opencnt, 0); |
310 | AFFS_I(inode)->i_blkcnt = 0; | 310 | AFFS_I(inode)->i_blkcnt = 0; |
@@ -387,7 +387,7 @@ affs_add_entry(struct inode *dir, struct inode *inode, struct dentry *dentry, s3 | |||
387 | AFFS_TAIL(sb, inode_bh)->link_chain = cpu_to_be32(block); | 387 | AFFS_TAIL(sb, inode_bh)->link_chain = cpu_to_be32(block); |
388 | affs_adjust_checksum(inode_bh, block - be32_to_cpu(chain)); | 388 | affs_adjust_checksum(inode_bh, block - be32_to_cpu(chain)); |
389 | mark_buffer_dirty_inode(inode_bh, inode); | 389 | mark_buffer_dirty_inode(inode_bh, inode); |
390 | inode->i_nlink = 2; | 390 | set_nlink(inode, 2); |
391 | ihold(inode); | 391 | ihold(inode); |
392 | } | 392 | } |
393 | affs_fix_checksum(sb, bh); | 393 | affs_fix_checksum(sb, bh); |
diff --git a/fs/afs/fsclient.c b/fs/afs/fsclient.c index 346e3289abd7..2f213d109c21 100644 --- a/fs/afs/fsclient.c +++ b/fs/afs/fsclient.c | |||
@@ -90,7 +90,7 @@ static void xdr_decode_AFSFetchStatus(const __be32 **_bp, | |||
90 | vnode->vfs_inode.i_uid = status->owner; | 90 | vnode->vfs_inode.i_uid = status->owner; |
91 | vnode->vfs_inode.i_gid = status->group; | 91 | vnode->vfs_inode.i_gid = status->group; |
92 | vnode->vfs_inode.i_generation = vnode->fid.unique; | 92 | vnode->vfs_inode.i_generation = vnode->fid.unique; |
93 | vnode->vfs_inode.i_nlink = status->nlink; | 93 | set_nlink(&vnode->vfs_inode, status->nlink); |
94 | 94 | ||
95 | mode = vnode->vfs_inode.i_mode; | 95 | mode = vnode->vfs_inode.i_mode; |
96 | mode &= ~S_IALLUGO; | 96 | mode &= ~S_IALLUGO; |
diff --git a/fs/afs/inode.c b/fs/afs/inode.c index 0fdab6e03d87..d890ae3b2ce6 100644 --- a/fs/afs/inode.c +++ b/fs/afs/inode.c | |||
@@ -67,7 +67,7 @@ static int afs_inode_map_status(struct afs_vnode *vnode, struct key *key) | |||
67 | fscache_attr_changed(vnode->cache); | 67 | fscache_attr_changed(vnode->cache); |
68 | #endif | 68 | #endif |
69 | 69 | ||
70 | inode->i_nlink = vnode->status.nlink; | 70 | set_nlink(inode, vnode->status.nlink); |
71 | inode->i_uid = vnode->status.owner; | 71 | inode->i_uid = vnode->status.owner; |
72 | inode->i_gid = 0; | 72 | inode->i_gid = 0; |
73 | inode->i_size = vnode->status.size; | 73 | inode->i_size = vnode->status.size; |
@@ -174,7 +174,7 @@ struct inode *afs_iget_autocell(struct inode *dir, const char *dev_name, | |||
174 | inode->i_size = 0; | 174 | inode->i_size = 0; |
175 | inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO; | 175 | inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO; |
176 | inode->i_op = &afs_autocell_inode_operations; | 176 | inode->i_op = &afs_autocell_inode_operations; |
177 | inode->i_nlink = 2; | 177 | set_nlink(inode, 2); |
178 | inode->i_uid = 0; | 178 | inode->i_uid = 0; |
179 | inode->i_gid = 0; | 179 | inode->i_gid = 0; |
180 | inode->i_ctime.tv_sec = get_seconds(); | 180 | inode->i_ctime.tv_sec = get_seconds(); |
diff --git a/fs/autofs4/inode.c b/fs/autofs4/inode.c index 180fa2425e49..8179f1ab8175 100644 --- a/fs/autofs4/inode.c +++ b/fs/autofs4/inode.c | |||
@@ -342,7 +342,7 @@ struct inode *autofs4_get_inode(struct super_block *sb, mode_t mode) | |||
342 | inode->i_ino = get_next_ino(); | 342 | inode->i_ino = get_next_ino(); |
343 | 343 | ||
344 | if (S_ISDIR(mode)) { | 344 | if (S_ISDIR(mode)) { |
345 | inode->i_nlink = 2; | 345 | set_nlink(inode, 2); |
346 | inode->i_op = &autofs4_dir_inode_operations; | 346 | inode->i_op = &autofs4_dir_inode_operations; |
347 | inode->i_fop = &autofs4_dir_operations; | 347 | inode->i_fop = &autofs4_dir_operations; |
348 | } else if (S_ISLNK(mode)) { | 348 | } else if (S_ISLNK(mode)) { |
diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c index 720d885e8dca..8342ca67abcd 100644 --- a/fs/befs/linuxvfs.c +++ b/fs/befs/linuxvfs.c | |||
@@ -357,7 +357,7 @@ static struct inode *befs_iget(struct super_block *sb, unsigned long ino) | |||
357 | inode->i_gid = befs_sb->mount_opts.use_gid ? | 357 | inode->i_gid = befs_sb->mount_opts.use_gid ? |
358 | befs_sb->mount_opts.gid : (gid_t) fs32_to_cpu(sb, raw_inode->gid); | 358 | befs_sb->mount_opts.gid : (gid_t) fs32_to_cpu(sb, raw_inode->gid); |
359 | 359 | ||
360 | inode->i_nlink = 1; | 360 | set_nlink(inode, 1); |
361 | 361 | ||
362 | /* | 362 | /* |
363 | * BEFS's time is 64 bits, but current VFS is 32 bits... | 363 | * BEFS's time is 64 bits, but current VFS is 32 bits... |
diff --git a/fs/bfs/dir.c b/fs/bfs/dir.c index b14cebfd9047..9cc074019479 100644 --- a/fs/bfs/dir.c +++ b/fs/bfs/dir.c | |||
@@ -199,7 +199,7 @@ static int bfs_unlink(struct inode *dir, struct dentry *dentry) | |||
199 | printf("unlinking non-existent file %s:%lu (nlink=%d)\n", | 199 | printf("unlinking non-existent file %s:%lu (nlink=%d)\n", |
200 | inode->i_sb->s_id, inode->i_ino, | 200 | inode->i_sb->s_id, inode->i_ino, |
201 | inode->i_nlink); | 201 | inode->i_nlink); |
202 | inode->i_nlink = 1; | 202 | set_nlink(inode, 1); |
203 | } | 203 | } |
204 | de->ino = 0; | 204 | de->ino = 0; |
205 | mark_buffer_dirty_inode(bh, dir); | 205 | mark_buffer_dirty_inode(bh, dir); |
diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c index a8e37f81d097..697af5bf70b3 100644 --- a/fs/bfs/inode.c +++ b/fs/bfs/inode.c | |||
@@ -78,7 +78,7 @@ struct inode *bfs_iget(struct super_block *sb, unsigned long ino) | |||
78 | BFS_I(inode)->i_dsk_ino = le16_to_cpu(di->i_ino); | 78 | BFS_I(inode)->i_dsk_ino = le16_to_cpu(di->i_ino); |
79 | inode->i_uid = le32_to_cpu(di->i_uid); | 79 | inode->i_uid = le32_to_cpu(di->i_uid); |
80 | inode->i_gid = le32_to_cpu(di->i_gid); | 80 | inode->i_gid = le32_to_cpu(di->i_gid); |
81 | inode->i_nlink = le32_to_cpu(di->i_nlink); | 81 | set_nlink(inode, le32_to_cpu(di->i_nlink)); |
82 | inode->i_size = BFS_FILESIZE(di); | 82 | inode->i_size = BFS_FILESIZE(di); |
83 | inode->i_blocks = BFS_FILEBLOCKS(di); | 83 | inode->i_blocks = BFS_FILEBLOCKS(di); |
84 | inode->i_atime.tv_sec = le32_to_cpu(di->i_atime); | 84 | inode->i_atime.tv_sec = le32_to_cpu(di->i_atime); |
diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c index b52c672f4c18..ae4d9cd10961 100644 --- a/fs/btrfs/delayed-inode.c +++ b/fs/btrfs/delayed-inode.c | |||
@@ -1641,7 +1641,7 @@ int btrfs_fill_inode(struct inode *inode, u32 *rdev) | |||
1641 | inode->i_gid = btrfs_stack_inode_gid(inode_item); | 1641 | inode->i_gid = btrfs_stack_inode_gid(inode_item); |
1642 | btrfs_i_size_write(inode, btrfs_stack_inode_size(inode_item)); | 1642 | btrfs_i_size_write(inode, btrfs_stack_inode_size(inode_item)); |
1643 | inode->i_mode = btrfs_stack_inode_mode(inode_item); | 1643 | inode->i_mode = btrfs_stack_inode_mode(inode_item); |
1644 | inode->i_nlink = btrfs_stack_inode_nlink(inode_item); | 1644 | set_nlink(inode, btrfs_stack_inode_nlink(inode_item)); |
1645 | inode_set_bytes(inode, btrfs_stack_inode_nbytes(inode_item)); | 1645 | inode_set_bytes(inode, btrfs_stack_inode_nbytes(inode_item)); |
1646 | BTRFS_I(inode)->generation = btrfs_stack_inode_generation(inode_item); | 1646 | BTRFS_I(inode)->generation = btrfs_stack_inode_generation(inode_item); |
1647 | BTRFS_I(inode)->sequence = btrfs_stack_inode_sequence(inode_item); | 1647 | BTRFS_I(inode)->sequence = btrfs_stack_inode_sequence(inode_item); |
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index 07b3ac662e19..07ea91879a91 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c | |||
@@ -1705,7 +1705,7 @@ struct btrfs_root *open_ctree(struct super_block *sb, | |||
1705 | sb->s_bdi = &fs_info->bdi; | 1705 | sb->s_bdi = &fs_info->bdi; |
1706 | 1706 | ||
1707 | fs_info->btree_inode->i_ino = BTRFS_BTREE_INODE_OBJECTID; | 1707 | fs_info->btree_inode->i_ino = BTRFS_BTREE_INODE_OBJECTID; |
1708 | fs_info->btree_inode->i_nlink = 1; | 1708 | set_nlink(fs_info->btree_inode, 1); |
1709 | /* | 1709 | /* |
1710 | * we set the i_size on the btree inode to the max possible int. | 1710 | * we set the i_size on the btree inode to the max possible int. |
1711 | * the real end of the address space is determined by all of | 1711 | * the real end of the address space is determined by all of |
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index b2d004ad66a0..75686a61bd45 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -2534,7 +2534,7 @@ static void btrfs_read_locked_inode(struct inode *inode) | |||
2534 | inode_item = btrfs_item_ptr(leaf, path->slots[0], | 2534 | inode_item = btrfs_item_ptr(leaf, path->slots[0], |
2535 | struct btrfs_inode_item); | 2535 | struct btrfs_inode_item); |
2536 | inode->i_mode = btrfs_inode_mode(leaf, inode_item); | 2536 | inode->i_mode = btrfs_inode_mode(leaf, inode_item); |
2537 | inode->i_nlink = btrfs_inode_nlink(leaf, inode_item); | 2537 | set_nlink(inode, btrfs_inode_nlink(leaf, inode_item)); |
2538 | inode->i_uid = btrfs_inode_uid(leaf, inode_item); | 2538 | inode->i_uid = btrfs_inode_uid(leaf, inode_item); |
2539 | inode->i_gid = btrfs_inode_gid(leaf, inode_item); | 2539 | inode->i_gid = btrfs_inode_gid(leaf, inode_item); |
2540 | btrfs_i_size_write(inode, btrfs_inode_size(leaf, inode_item)); | 2540 | btrfs_i_size_write(inode, btrfs_inode_size(leaf, inode_item)); |
@@ -6728,7 +6728,7 @@ int btrfs_create_subvol_root(struct btrfs_trans_handle *trans, | |||
6728 | inode->i_op = &btrfs_dir_inode_operations; | 6728 | inode->i_op = &btrfs_dir_inode_operations; |
6729 | inode->i_fop = &btrfs_dir_file_operations; | 6729 | inode->i_fop = &btrfs_dir_file_operations; |
6730 | 6730 | ||
6731 | inode->i_nlink = 1; | 6731 | set_nlink(inode, 1); |
6732 | btrfs_i_size_write(inode, 0); | 6732 | btrfs_i_size_write(inode, 0); |
6733 | 6733 | ||
6734 | err = btrfs_update_inode(trans, new_root, inode); | 6734 | err = btrfs_update_inode(trans, new_root, inode); |
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c index 786639fca067..0618aa39740b 100644 --- a/fs/btrfs/tree-log.c +++ b/fs/btrfs/tree-log.c | |||
@@ -1030,7 +1030,7 @@ static noinline int fixup_inode_link_count(struct btrfs_trans_handle *trans, | |||
1030 | } | 1030 | } |
1031 | btrfs_release_path(path); | 1031 | btrfs_release_path(path); |
1032 | if (nlink != inode->i_nlink) { | 1032 | if (nlink != inode->i_nlink) { |
1033 | inode->i_nlink = nlink; | 1033 | set_nlink(inode, nlink); |
1034 | btrfs_update_inode(trans, root, inode); | 1034 | btrfs_update_inode(trans, root, inode); |
1035 | } | 1035 | } |
1036 | BTRFS_I(inode)->index_cnt = (u64)-1; | 1036 | BTRFS_I(inode)->index_cnt = (u64)-1; |
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index b8731bf3ef1f..15b21e35078a 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c | |||
@@ -2363,7 +2363,7 @@ static void handle_cap_grant(struct inode *inode, struct ceph_mds_caps *grant, | |||
2363 | } | 2363 | } |
2364 | 2364 | ||
2365 | if ((issued & CEPH_CAP_LINK_EXCL) == 0) | 2365 | if ((issued & CEPH_CAP_LINK_EXCL) == 0) |
2366 | inode->i_nlink = le32_to_cpu(grant->nlink); | 2366 | set_nlink(inode, le32_to_cpu(grant->nlink)); |
2367 | 2367 | ||
2368 | if ((issued & CEPH_CAP_XATTR_EXCL) == 0 && grant->xattr_len) { | 2368 | if ((issued & CEPH_CAP_XATTR_EXCL) == 0 && grant->xattr_len) { |
2369 | int len = le32_to_cpu(grant->xattr_len); | 2369 | int len = le32_to_cpu(grant->xattr_len); |
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c index 5dde7d51dc11..1616a0d37cbd 100644 --- a/fs/ceph/inode.c +++ b/fs/ceph/inode.c | |||
@@ -618,7 +618,7 @@ static int fill_inode(struct inode *inode, | |||
618 | } | 618 | } |
619 | 619 | ||
620 | if ((issued & CEPH_CAP_LINK_EXCL) == 0) | 620 | if ((issued & CEPH_CAP_LINK_EXCL) == 0) |
621 | inode->i_nlink = le32_to_cpu(info->nlink); | 621 | set_nlink(inode, le32_to_cpu(info->nlink)); |
622 | 622 | ||
623 | /* be careful with mtime, atime, size */ | 623 | /* be careful with mtime, atime, size */ |
624 | ceph_decode_timespec(&atime, &info->atime); | 624 | ceph_decode_timespec(&atime, &info->atime); |
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index 2c50bd2f65d1..e851d5b8931e 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c | |||
@@ -132,7 +132,7 @@ cifs_fattr_to_inode(struct inode *inode, struct cifs_fattr *fattr) | |||
132 | inode->i_mtime = fattr->cf_mtime; | 132 | inode->i_mtime = fattr->cf_mtime; |
133 | inode->i_ctime = fattr->cf_ctime; | 133 | inode->i_ctime = fattr->cf_ctime; |
134 | inode->i_rdev = fattr->cf_rdev; | 134 | inode->i_rdev = fattr->cf_rdev; |
135 | inode->i_nlink = fattr->cf_nlink; | 135 | set_nlink(inode, fattr->cf_nlink); |
136 | inode->i_uid = fattr->cf_uid; | 136 | inode->i_uid = fattr->cf_uid; |
137 | inode->i_gid = fattr->cf_gid; | 137 | inode->i_gid = fattr->cf_gid; |
138 | 138 | ||
@@ -905,7 +905,7 @@ struct inode *cifs_root_iget(struct super_block *sb) | |||
905 | if (rc && tcon->ipc) { | 905 | if (rc && tcon->ipc) { |
906 | cFYI(1, "ipc connection - fake read inode"); | 906 | cFYI(1, "ipc connection - fake read inode"); |
907 | inode->i_mode |= S_IFDIR; | 907 | inode->i_mode |= S_IFDIR; |
908 | inode->i_nlink = 2; | 908 | set_nlink(inode, 2); |
909 | inode->i_op = &cifs_ipc_inode_ops; | 909 | inode->i_op = &cifs_ipc_inode_ops; |
910 | inode->i_fop = &simple_dir_operations; | 910 | inode->i_fop = &simple_dir_operations; |
911 | inode->i_uid = cifs_sb->mnt_uid; | 911 | inode->i_uid = cifs_sb->mnt_uid; |
@@ -1367,7 +1367,7 @@ mkdir_get_info: | |||
1367 | /* setting nlink not necessary except in cases where we | 1367 | /* setting nlink not necessary except in cases where we |
1368 | * failed to get it from the server or was set bogus */ | 1368 | * failed to get it from the server or was set bogus */ |
1369 | if ((direntry->d_inode) && (direntry->d_inode->i_nlink < 2)) | 1369 | if ((direntry->d_inode) && (direntry->d_inode->i_nlink < 2)) |
1370 | direntry->d_inode->i_nlink = 2; | 1370 | set_nlink(direntry->d_inode, 2); |
1371 | 1371 | ||
1372 | mode &= ~current_umask(); | 1372 | mode &= ~current_umask(); |
1373 | /* must turn on setgid bit if parent dir has it */ | 1373 | /* must turn on setgid bit if parent dir has it */ |
diff --git a/fs/coda/coda_linux.c b/fs/coda/coda_linux.c index 2bdbcc11b373..854ace712685 100644 --- a/fs/coda/coda_linux.c +++ b/fs/coda/coda_linux.c | |||
@@ -104,7 +104,7 @@ void coda_vattr_to_iattr(struct inode *inode, struct coda_vattr *attr) | |||
104 | if (attr->va_gid != -1) | 104 | if (attr->va_gid != -1) |
105 | inode->i_gid = (gid_t) attr->va_gid; | 105 | inode->i_gid = (gid_t) attr->va_gid; |
106 | if (attr->va_nlink != -1) | 106 | if (attr->va_nlink != -1) |
107 | inode->i_nlink = attr->va_nlink; | 107 | set_nlink(inode, attr->va_nlink); |
108 | if (attr->va_size != -1) | 108 | if (attr->va_size != -1) |
109 | inode->i_size = attr->va_size; | 109 | inode->i_size = attr->va_size; |
110 | if (attr->va_size != -1) | 110 | if (attr->va_size != -1) |
diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c index c196e544c64e..d5d5297efe97 100644 --- a/fs/devpts/inode.c +++ b/fs/devpts/inode.c | |||
@@ -307,7 +307,7 @@ devpts_fill_super(struct super_block *s, void *data, int silent) | |||
307 | inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO | S_IWUSR; | 307 | inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO | S_IWUSR; |
308 | inode->i_op = &simple_dir_inode_operations; | 308 | inode->i_op = &simple_dir_inode_operations; |
309 | inode->i_fop = &simple_dir_operations; | 309 | inode->i_fop = &simple_dir_operations; |
310 | inode->i_nlink = 2; | 310 | set_nlink(inode, 2); |
311 | 311 | ||
312 | s->s_root = d_alloc_root(inode); | 312 | s->s_root = d_alloc_root(inode); |
313 | if (s->s_root) | 313 | if (s->s_root) |
diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c index 11f8582d7218..a36d327f1521 100644 --- a/fs/ecryptfs/inode.c +++ b/fs/ecryptfs/inode.c | |||
@@ -474,8 +474,8 @@ static int ecryptfs_link(struct dentry *old_dentry, struct inode *dir, | |||
474 | goto out_lock; | 474 | goto out_lock; |
475 | fsstack_copy_attr_times(dir, lower_dir_dentry->d_inode); | 475 | fsstack_copy_attr_times(dir, lower_dir_dentry->d_inode); |
476 | fsstack_copy_inode_size(dir, lower_dir_dentry->d_inode); | 476 | fsstack_copy_inode_size(dir, lower_dir_dentry->d_inode); |
477 | old_dentry->d_inode->i_nlink = | 477 | set_nlink(old_dentry->d_inode, |
478 | ecryptfs_inode_to_lower(old_dentry->d_inode)->i_nlink; | 478 | ecryptfs_inode_to_lower(old_dentry->d_inode)->i_nlink); |
479 | i_size_write(new_dentry->d_inode, file_size_save); | 479 | i_size_write(new_dentry->d_inode, file_size_save); |
480 | out_lock: | 480 | out_lock: |
481 | unlock_dir(lower_dir_dentry); | 481 | unlock_dir(lower_dir_dentry); |
@@ -499,8 +499,8 @@ static int ecryptfs_unlink(struct inode *dir, struct dentry *dentry) | |||
499 | goto out_unlock; | 499 | goto out_unlock; |
500 | } | 500 | } |
501 | fsstack_copy_attr_times(dir, lower_dir_inode); | 501 | fsstack_copy_attr_times(dir, lower_dir_inode); |
502 | dentry->d_inode->i_nlink = | 502 | set_nlink(dentry->d_inode, |
503 | ecryptfs_inode_to_lower(dentry->d_inode)->i_nlink; | 503 | ecryptfs_inode_to_lower(dentry->d_inode)->i_nlink); |
504 | dentry->d_inode->i_ctime = dir->i_ctime; | 504 | dentry->d_inode->i_ctime = dir->i_ctime; |
505 | d_drop(dentry); | 505 | d_drop(dentry); |
506 | out_unlock: | 506 | out_unlock: |
@@ -565,7 +565,7 @@ static int ecryptfs_mkdir(struct inode *dir, struct dentry *dentry, int mode) | |||
565 | goto out; | 565 | goto out; |
566 | fsstack_copy_attr_times(dir, lower_dir_dentry->d_inode); | 566 | fsstack_copy_attr_times(dir, lower_dir_dentry->d_inode); |
567 | fsstack_copy_inode_size(dir, lower_dir_dentry->d_inode); | 567 | fsstack_copy_inode_size(dir, lower_dir_dentry->d_inode); |
568 | dir->i_nlink = lower_dir_dentry->d_inode->i_nlink; | 568 | set_nlink(dir, lower_dir_dentry->d_inode->i_nlink); |
569 | out: | 569 | out: |
570 | unlock_dir(lower_dir_dentry); | 570 | unlock_dir(lower_dir_dentry); |
571 | if (!dentry->d_inode) | 571 | if (!dentry->d_inode) |
@@ -588,7 +588,7 @@ static int ecryptfs_rmdir(struct inode *dir, struct dentry *dentry) | |||
588 | if (!rc && dentry->d_inode) | 588 | if (!rc && dentry->d_inode) |
589 | clear_nlink(dentry->d_inode); | 589 | clear_nlink(dentry->d_inode); |
590 | fsstack_copy_attr_times(dir, lower_dir_dentry->d_inode); | 590 | fsstack_copy_attr_times(dir, lower_dir_dentry->d_inode); |
591 | dir->i_nlink = lower_dir_dentry->d_inode->i_nlink; | 591 | set_nlink(dir, lower_dir_dentry->d_inode->i_nlink); |
592 | unlock_dir(lower_dir_dentry); | 592 | unlock_dir(lower_dir_dentry); |
593 | if (!rc) | 593 | if (!rc) |
594 | d_drop(dentry); | 594 | d_drop(dentry); |
diff --git a/fs/efs/inode.c b/fs/efs/inode.c index 9c13412e6c99..bc84f365d75c 100644 --- a/fs/efs/inode.c +++ b/fs/efs/inode.c | |||
@@ -96,7 +96,7 @@ struct inode *efs_iget(struct super_block *super, unsigned long ino) | |||
96 | efs_inode = (struct efs_dinode *) (bh->b_data + offset); | 96 | efs_inode = (struct efs_dinode *) (bh->b_data + offset); |
97 | 97 | ||
98 | inode->i_mode = be16_to_cpu(efs_inode->di_mode); | 98 | inode->i_mode = be16_to_cpu(efs_inode->di_mode); |
99 | inode->i_nlink = be16_to_cpu(efs_inode->di_nlink); | 99 | set_nlink(inode, be16_to_cpu(efs_inode->di_nlink)); |
100 | inode->i_uid = (uid_t)be16_to_cpu(efs_inode->di_uid); | 100 | inode->i_uid = (uid_t)be16_to_cpu(efs_inode->di_uid); |
101 | inode->i_gid = (gid_t)be16_to_cpu(efs_inode->di_gid); | 101 | inode->i_gid = (gid_t)be16_to_cpu(efs_inode->di_gid); |
102 | inode->i_size = be32_to_cpu(efs_inode->di_size); | 102 | inode->i_size = be32_to_cpu(efs_inode->di_size); |
diff --git a/fs/exofs/inode.c b/fs/exofs/inode.c index 3e5f3a6be90a..f6dbf7768ce6 100644 --- a/fs/exofs/inode.c +++ b/fs/exofs/inode.c | |||
@@ -1165,7 +1165,7 @@ struct inode *exofs_iget(struct super_block *sb, unsigned long ino) | |||
1165 | inode->i_mode = le16_to_cpu(fcb.i_mode); | 1165 | inode->i_mode = le16_to_cpu(fcb.i_mode); |
1166 | inode->i_uid = le32_to_cpu(fcb.i_uid); | 1166 | inode->i_uid = le32_to_cpu(fcb.i_uid); |
1167 | inode->i_gid = le32_to_cpu(fcb.i_gid); | 1167 | inode->i_gid = le32_to_cpu(fcb.i_gid); |
1168 | inode->i_nlink = le16_to_cpu(fcb.i_links_count); | 1168 | set_nlink(inode, le16_to_cpu(fcb.i_links_count)); |
1169 | inode->i_ctime.tv_sec = (signed)le32_to_cpu(fcb.i_ctime); | 1169 | inode->i_ctime.tv_sec = (signed)le32_to_cpu(fcb.i_ctime); |
1170 | inode->i_atime.tv_sec = (signed)le32_to_cpu(fcb.i_atime); | 1170 | inode->i_atime.tv_sec = (signed)le32_to_cpu(fcb.i_atime); |
1171 | inode->i_mtime.tv_sec = (signed)le32_to_cpu(fcb.i_mtime); | 1171 | inode->i_mtime.tv_sec = (signed)le32_to_cpu(fcb.i_mtime); |
diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c index a8a58f63f07c..91a6945af6d8 100644 --- a/fs/ext2/inode.c +++ b/fs/ext2/inode.c | |||
@@ -1321,7 +1321,7 @@ struct inode *ext2_iget (struct super_block *sb, unsigned long ino) | |||
1321 | inode->i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16; | 1321 | inode->i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16; |
1322 | inode->i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16; | 1322 | inode->i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16; |
1323 | } | 1323 | } |
1324 | inode->i_nlink = le16_to_cpu(raw_inode->i_links_count); | 1324 | set_nlink(inode, le16_to_cpu(raw_inode->i_links_count)); |
1325 | inode->i_size = le32_to_cpu(raw_inode->i_size); | 1325 | inode->i_size = le32_to_cpu(raw_inode->i_size); |
1326 | inode->i_atime.tv_sec = (signed)le32_to_cpu(raw_inode->i_atime); | 1326 | inode->i_atime.tv_sec = (signed)le32_to_cpu(raw_inode->i_atime); |
1327 | inode->i_ctime.tv_sec = (signed)le32_to_cpu(raw_inode->i_ctime); | 1327 | inode->i_ctime.tv_sec = (signed)le32_to_cpu(raw_inode->i_ctime); |
diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c index 12661e1deedd..85fe655fe3e0 100644 --- a/fs/ext3/inode.c +++ b/fs/ext3/inode.c | |||
@@ -2899,7 +2899,7 @@ struct inode *ext3_iget(struct super_block *sb, unsigned long ino) | |||
2899 | inode->i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16; | 2899 | inode->i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16; |
2900 | inode->i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16; | 2900 | inode->i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16; |
2901 | } | 2901 | } |
2902 | inode->i_nlink = le16_to_cpu(raw_inode->i_links_count); | 2902 | set_nlink(inode, le16_to_cpu(raw_inode->i_links_count)); |
2903 | inode->i_size = le32_to_cpu(raw_inode->i_size); | 2903 | inode->i_size = le32_to_cpu(raw_inode->i_size); |
2904 | inode->i_atime.tv_sec = (signed)le32_to_cpu(raw_inode->i_atime); | 2904 | inode->i_atime.tv_sec = (signed)le32_to_cpu(raw_inode->i_atime); |
2905 | inode->i_ctime.tv_sec = (signed)le32_to_cpu(raw_inode->i_ctime); | 2905 | inode->i_ctime.tv_sec = (signed)le32_to_cpu(raw_inode->i_ctime); |
diff --git a/fs/ext3/namei.c b/fs/ext3/namei.c index 8a60e3327659..642dc6d66dfd 100644 --- a/fs/ext3/namei.c +++ b/fs/ext3/namei.c | |||
@@ -1821,7 +1821,7 @@ retry: | |||
1821 | de->name_len = 2; | 1821 | de->name_len = 2; |
1822 | strcpy (de->name, ".."); | 1822 | strcpy (de->name, ".."); |
1823 | ext3_set_de_type(dir->i_sb, de, S_IFDIR); | 1823 | ext3_set_de_type(dir->i_sb, de, S_IFDIR); |
1824 | inode->i_nlink = 2; | 1824 | set_nlink(inode, 2); |
1825 | BUFFER_TRACE(dir_block, "call ext3_journal_dirty_metadata"); | 1825 | BUFFER_TRACE(dir_block, "call ext3_journal_dirty_metadata"); |
1826 | err = ext3_journal_dirty_metadata(handle, dir_block); | 1826 | err = ext3_journal_dirty_metadata(handle, dir_block); |
1827 | if (err) | 1827 | if (err) |
@@ -2170,7 +2170,7 @@ static int ext3_unlink(struct inode * dir, struct dentry *dentry) | |||
2170 | ext3_warning (inode->i_sb, "ext3_unlink", | 2170 | ext3_warning (inode->i_sb, "ext3_unlink", |
2171 | "Deleting nonexistent file (%lu), %d", | 2171 | "Deleting nonexistent file (%lu), %d", |
2172 | inode->i_ino, inode->i_nlink); | 2172 | inode->i_ino, inode->i_nlink); |
2173 | inode->i_nlink = 1; | 2173 | set_nlink(inode, 1); |
2174 | } | 2174 | } |
2175 | retval = ext3_delete_entry(handle, dir, de, bh); | 2175 | retval = ext3_delete_entry(handle, dir, de, bh); |
2176 | if (retval) | 2176 | if (retval) |
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 0defe0bfe019..be6668bbc1b3 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c | |||
@@ -3418,7 +3418,7 @@ struct inode *ext4_iget(struct super_block *sb, unsigned long ino) | |||
3418 | inode->i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16; | 3418 | inode->i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16; |
3419 | inode->i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16; | 3419 | inode->i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16; |
3420 | } | 3420 | } |
3421 | inode->i_nlink = le16_to_cpu(raw_inode->i_links_count); | 3421 | set_nlink(inode, le16_to_cpu(raw_inode->i_links_count)); |
3422 | 3422 | ||
3423 | ext4_clear_state_flags(ei); /* Only relevant on 32-bit archs */ | 3423 | ext4_clear_state_flags(ei); /* Only relevant on 32-bit archs */ |
3424 | ei->i_dir_start_lookup = 0; | 3424 | ei->i_dir_start_lookup = 0; |
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index 4623c082f3b2..5f7fb46293be 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 | } |
@@ -1861,7 +1861,7 @@ retry: | |||
1861 | de->name_len = 2; | 1861 | de->name_len = 2; |
1862 | strcpy(de->name, ".."); | 1862 | strcpy(de->name, ".."); |
1863 | ext4_set_de_type(dir->i_sb, de, S_IFDIR); | 1863 | ext4_set_de_type(dir->i_sb, de, S_IFDIR); |
1864 | inode->i_nlink = 2; | 1864 | set_nlink(inode, 2); |
1865 | BUFFER_TRACE(dir_block, "call ext4_handle_dirty_metadata"); | 1865 | BUFFER_TRACE(dir_block, "call ext4_handle_dirty_metadata"); |
1866 | err = ext4_handle_dirty_metadata(handle, dir, dir_block); | 1866 | err = ext4_handle_dirty_metadata(handle, dir, dir_block); |
1867 | if (err) | 1867 | if (err) |
@@ -2214,7 +2214,7 @@ static int ext4_unlink(struct inode *dir, struct dentry *dentry) | |||
2214 | ext4_warning(inode->i_sb, | 2214 | ext4_warning(inode->i_sb, |
2215 | "Deleting nonexistent file (%lu), %d", | 2215 | "Deleting nonexistent file (%lu), %d", |
2216 | inode->i_ino, inode->i_nlink); | 2216 | inode->i_ino, inode->i_nlink); |
2217 | inode->i_nlink = 1; | 2217 | set_nlink(inode, 1); |
2218 | } | 2218 | } |
2219 | retval = ext4_delete_entry(handle, dir, de, bh); | 2219 | retval = ext4_delete_entry(handle, dir, de, bh); |
2220 | if (retval) | 2220 | if (retval) |
diff --git a/fs/fat/inode.c b/fs/fat/inode.c index 1726d7303047..808cac7edcfb 100644 --- a/fs/fat/inode.c +++ b/fs/fat/inode.c | |||
@@ -379,7 +379,7 @@ static int fat_fill_inode(struct inode *inode, struct msdos_dir_entry *de) | |||
379 | return error; | 379 | return error; |
380 | MSDOS_I(inode)->mmu_private = inode->i_size; | 380 | MSDOS_I(inode)->mmu_private = inode->i_size; |
381 | 381 | ||
382 | inode->i_nlink = fat_subdirs(inode); | 382 | set_nlink(inode, fat_subdirs(inode)); |
383 | } else { /* not a directory */ | 383 | } else { /* not a directory */ |
384 | inode->i_generation |= 1; | 384 | inode->i_generation |= 1; |
385 | inode->i_mode = fat_make_mode(sbi, de->attr, | 385 | inode->i_mode = fat_make_mode(sbi, de->attr, |
@@ -1233,7 +1233,7 @@ static int fat_read_root(struct inode *inode) | |||
1233 | fat_save_attrs(inode, ATTR_DIR); | 1233 | fat_save_attrs(inode, ATTR_DIR); |
1234 | inode->i_mtime.tv_sec = inode->i_atime.tv_sec = inode->i_ctime.tv_sec = 0; | 1234 | inode->i_mtime.tv_sec = inode->i_atime.tv_sec = inode->i_ctime.tv_sec = 0; |
1235 | inode->i_mtime.tv_nsec = inode->i_atime.tv_nsec = inode->i_ctime.tv_nsec = 0; | 1235 | inode->i_mtime.tv_nsec = inode->i_atime.tv_nsec = inode->i_ctime.tv_nsec = 0; |
1236 | inode->i_nlink = fat_subdirs(inode)+2; | 1236 | set_nlink(inode, fat_subdirs(inode)+2); |
1237 | 1237 | ||
1238 | return 0; | 1238 | return 0; |
1239 | } | 1239 | } |
diff --git a/fs/fat/namei_msdos.c b/fs/fat/namei_msdos.c index 66e83b845455..216b419f30e2 100644 --- a/fs/fat/namei_msdos.c +++ b/fs/fat/namei_msdos.c | |||
@@ -387,7 +387,7 @@ static int msdos_mkdir(struct inode *dir, struct dentry *dentry, int mode) | |||
387 | /* the directory was completed, just return a error */ | 387 | /* the directory was completed, just return a error */ |
388 | goto out; | 388 | goto out; |
389 | } | 389 | } |
390 | inode->i_nlink = 2; | 390 | set_nlink(inode, 2); |
391 | inode->i_mtime = inode->i_atime = inode->i_ctime = ts; | 391 | inode->i_mtime = inode->i_atime = inode->i_ctime = ts; |
392 | /* timestamp is already written, so mark_inode_dirty() is unneeded. */ | 392 | /* timestamp is already written, so mark_inode_dirty() is unneeded. */ |
393 | 393 | ||
diff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c index bb3f29c3557b..a87a65663c25 100644 --- a/fs/fat/namei_vfat.c +++ b/fs/fat/namei_vfat.c | |||
@@ -900,7 +900,7 @@ static int vfat_mkdir(struct inode *dir, struct dentry *dentry, int mode) | |||
900 | goto out; | 900 | goto out; |
901 | } | 901 | } |
902 | inode->i_version++; | 902 | inode->i_version++; |
903 | inode->i_nlink = 2; | 903 | set_nlink(inode, 2); |
904 | inode->i_mtime = inode->i_atime = inode->i_ctime = ts; | 904 | inode->i_mtime = inode->i_atime = inode->i_ctime = ts; |
905 | /* timestamp is already written, so mark_inode_dirty() is unneeded. */ | 905 | /* timestamp is already written, so mark_inode_dirty() is unneeded. */ |
906 | 906 | ||
diff --git a/fs/freevxfs/vxfs_inode.c b/fs/freevxfs/vxfs_inode.c index 1a4311437a8b..7b2af5abe2fa 100644 --- a/fs/freevxfs/vxfs_inode.c +++ b/fs/freevxfs/vxfs_inode.c | |||
@@ -227,7 +227,7 @@ vxfs_iinit(struct inode *ip, struct vxfs_inode_info *vip) | |||
227 | ip->i_uid = (uid_t)vip->vii_uid; | 227 | ip->i_uid = (uid_t)vip->vii_uid; |
228 | ip->i_gid = (gid_t)vip->vii_gid; | 228 | ip->i_gid = (gid_t)vip->vii_gid; |
229 | 229 | ||
230 | ip->i_nlink = vip->vii_nlink; | 230 | set_nlink(ip, vip->vii_nlink); |
231 | ip->i_size = vip->vii_size; | 231 | ip->i_size = vip->vii_size; |
232 | 232 | ||
233 | ip->i_atime.tv_sec = vip->vii_atime; | 233 | ip->i_atime.tv_sec = vip->vii_atime; |
diff --git a/fs/fuse/control.c b/fs/fuse/control.c index 85542a7daf40..42593c587d48 100644 --- a/fs/fuse/control.c +++ b/fs/fuse/control.c | |||
@@ -231,7 +231,7 @@ static struct dentry *fuse_ctl_add_dentry(struct dentry *parent, | |||
231 | if (iop) | 231 | if (iop) |
232 | inode->i_op = iop; | 232 | inode->i_op = iop; |
233 | inode->i_fop = fop; | 233 | inode->i_fop = fop; |
234 | inode->i_nlink = nlink; | 234 | set_nlink(inode, nlink); |
235 | inode->i_private = fc; | 235 | inode->i_private = fc; |
236 | d_add(dentry, inode); | 236 | d_add(dentry, inode); |
237 | return dentry; | 237 | return dentry; |
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c index add96f6ffda5..3e6d72756479 100644 --- a/fs/fuse/inode.c +++ b/fs/fuse/inode.c | |||
@@ -151,7 +151,7 @@ void fuse_change_attributes_common(struct inode *inode, struct fuse_attr *attr, | |||
151 | 151 | ||
152 | inode->i_ino = attr->ino; | 152 | inode->i_ino = attr->ino; |
153 | inode->i_mode = (inode->i_mode & S_IFMT) | (attr->mode & 07777); | 153 | inode->i_mode = (inode->i_mode & S_IFMT) | (attr->mode & 07777); |
154 | inode->i_nlink = attr->nlink; | 154 | set_nlink(inode, attr->nlink); |
155 | inode->i_uid = attr->uid; | 155 | inode->i_uid = attr->uid; |
156 | inode->i_gid = attr->gid; | 156 | inode->i_gid = attr->gid; |
157 | inode->i_blocks = attr->blocks; | 157 | inode->i_blocks = attr->blocks; |
diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c index 78418b4fa857..1656df7aacd2 100644 --- a/fs/gfs2/glops.c +++ b/fs/gfs2/glops.c | |||
@@ -299,7 +299,7 @@ static void gfs2_set_nlink(struct inode *inode, u32 nlink) | |||
299 | if (nlink == 0) | 299 | if (nlink == 0) |
300 | clear_nlink(inode); | 300 | clear_nlink(inode); |
301 | else | 301 | else |
302 | inode->i_nlink = nlink; | 302 | set_nlink(inode, nlink); |
303 | } | 303 | } |
304 | } | 304 | } |
305 | 305 | ||
diff --git a/fs/hfs/inode.c b/fs/hfs/inode.c index 96a1b625fc74..a1a9fdcd2a00 100644 --- a/fs/hfs/inode.c +++ b/fs/hfs/inode.c | |||
@@ -183,7 +183,7 @@ struct inode *hfs_new_inode(struct inode *dir, struct qstr *name, int mode) | |||
183 | inode->i_mode = mode; | 183 | inode->i_mode = mode; |
184 | inode->i_uid = current_fsuid(); | 184 | inode->i_uid = current_fsuid(); |
185 | inode->i_gid = current_fsgid(); | 185 | inode->i_gid = current_fsgid(); |
186 | inode->i_nlink = 1; | 186 | set_nlink(inode, 1); |
187 | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC; | 187 | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC; |
188 | HFS_I(inode)->flags = 0; | 188 | HFS_I(inode)->flags = 0; |
189 | HFS_I(inode)->rsrc_inode = NULL; | 189 | HFS_I(inode)->rsrc_inode = NULL; |
@@ -313,7 +313,7 @@ static int hfs_read_inode(struct inode *inode, void *data) | |||
313 | /* Initialize the inode */ | 313 | /* Initialize the inode */ |
314 | inode->i_uid = hsb->s_uid; | 314 | inode->i_uid = hsb->s_uid; |
315 | inode->i_gid = hsb->s_gid; | 315 | inode->i_gid = hsb->s_gid; |
316 | inode->i_nlink = 1; | 316 | set_nlink(inode, 1); |
317 | 317 | ||
318 | if (idata->key) | 318 | if (idata->key) |
319 | HFS_I(inode)->cat_key = *idata->key; | 319 | HFS_I(inode)->cat_key = *idata->key; |
diff --git a/fs/hfsplus/inode.c b/fs/hfsplus/inode.c index 4cc1e3a36ec7..40e1413be4cf 100644 --- a/fs/hfsplus/inode.c +++ b/fs/hfsplus/inode.c | |||
@@ -391,7 +391,7 @@ struct inode *hfsplus_new_inode(struct super_block *sb, int mode) | |||
391 | inode->i_mode = mode; | 391 | inode->i_mode = mode; |
392 | inode->i_uid = current_fsuid(); | 392 | inode->i_uid = current_fsuid(); |
393 | inode->i_gid = current_fsgid(); | 393 | inode->i_gid = current_fsgid(); |
394 | inode->i_nlink = 1; | 394 | set_nlink(inode, 1); |
395 | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC; | 395 | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC; |
396 | 396 | ||
397 | hip = HFSPLUS_I(inode); | 397 | hip = HFSPLUS_I(inode); |
@@ -512,7 +512,7 @@ int hfsplus_cat_read_inode(struct inode *inode, struct hfs_find_data *fd) | |||
512 | hfs_bnode_read(fd->bnode, &entry, fd->entryoffset, | 512 | hfs_bnode_read(fd->bnode, &entry, fd->entryoffset, |
513 | sizeof(struct hfsplus_cat_folder)); | 513 | sizeof(struct hfsplus_cat_folder)); |
514 | hfsplus_get_perms(inode, &folder->permissions, 1); | 514 | hfsplus_get_perms(inode, &folder->permissions, 1); |
515 | inode->i_nlink = 1; | 515 | set_nlink(inode, 1); |
516 | inode->i_size = 2 + be32_to_cpu(folder->valence); | 516 | inode->i_size = 2 + be32_to_cpu(folder->valence); |
517 | inode->i_atime = hfsp_mt2ut(folder->access_date); | 517 | inode->i_atime = hfsp_mt2ut(folder->access_date); |
518 | inode->i_mtime = hfsp_mt2ut(folder->content_mod_date); | 518 | inode->i_mtime = hfsp_mt2ut(folder->content_mod_date); |
@@ -532,11 +532,11 @@ int hfsplus_cat_read_inode(struct inode *inode, struct hfs_find_data *fd) | |||
532 | hfsplus_inode_read_fork(inode, HFSPLUS_IS_RSRC(inode) ? | 532 | hfsplus_inode_read_fork(inode, HFSPLUS_IS_RSRC(inode) ? |
533 | &file->rsrc_fork : &file->data_fork); | 533 | &file->rsrc_fork : &file->data_fork); |
534 | hfsplus_get_perms(inode, &file->permissions, 0); | 534 | hfsplus_get_perms(inode, &file->permissions, 0); |
535 | inode->i_nlink = 1; | 535 | set_nlink(inode, 1); |
536 | if (S_ISREG(inode->i_mode)) { | 536 | if (S_ISREG(inode->i_mode)) { |
537 | if (file->permissions.dev) | 537 | if (file->permissions.dev) |
538 | inode->i_nlink = | 538 | set_nlink(inode, |
539 | be32_to_cpu(file->permissions.dev); | 539 | be32_to_cpu(file->permissions.dev)); |
540 | inode->i_op = &hfsplus_file_inode_operations; | 540 | inode->i_op = &hfsplus_file_inode_operations; |
541 | inode->i_fop = &hfsplus_file_operations; | 541 | inode->i_fop = &hfsplus_file_operations; |
542 | inode->i_mapping->a_ops = &hfsplus_aops; | 542 | inode->i_mapping->a_ops = &hfsplus_aops; |
diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c index 0d22afdd4611..2f72da5ae686 100644 --- a/fs/hostfs/hostfs_kern.c +++ b/fs/hostfs/hostfs_kern.c | |||
@@ -541,7 +541,7 @@ static int read_name(struct inode *ino, char *name) | |||
541 | 541 | ||
542 | ino->i_ino = st.ino; | 542 | ino->i_ino = st.ino; |
543 | ino->i_mode = st.mode; | 543 | ino->i_mode = st.mode; |
544 | ino->i_nlink = st.nlink; | 544 | set_nlink(ino, st.nlink); |
545 | ino->i_uid = st.uid; | 545 | ino->i_uid = st.uid; |
546 | ino->i_gid = st.gid; | 546 | ino->i_gid = st.gid; |
547 | ino->i_atime = st.atime; | 547 | ino->i_atime = st.atime; |
diff --git a/fs/hpfs/dir.c b/fs/hpfs/dir.c index 96a8ed91cedd..2fa0089a02a8 100644 --- a/fs/hpfs/dir.c +++ b/fs/hpfs/dir.c | |||
@@ -247,7 +247,7 @@ struct dentry *hpfs_lookup(struct inode *dir, struct dentry *dentry, struct name | |||
247 | result->i_mode &= ~0111; | 247 | result->i_mode &= ~0111; |
248 | result->i_op = &hpfs_file_iops; | 248 | result->i_op = &hpfs_file_iops; |
249 | result->i_fop = &hpfs_file_ops; | 249 | result->i_fop = &hpfs_file_ops; |
250 | result->i_nlink = 1; | 250 | set_nlink(result, 1); |
251 | } | 251 | } |
252 | unlock_new_inode(result); | 252 | unlock_new_inode(result); |
253 | } | 253 | } |
diff --git a/fs/hpfs/inode.c b/fs/hpfs/inode.c index dfe800c8ae38..3b2cec29972b 100644 --- a/fs/hpfs/inode.c +++ b/fs/hpfs/inode.c | |||
@@ -77,7 +77,7 @@ void hpfs_read_inode(struct inode *i) | |||
77 | i->i_mode = S_IFLNK | 0777; | 77 | i->i_mode = S_IFLNK | 0777; |
78 | i->i_op = &page_symlink_inode_operations; | 78 | i->i_op = &page_symlink_inode_operations; |
79 | i->i_data.a_ops = &hpfs_symlink_aops; | 79 | i->i_data.a_ops = &hpfs_symlink_aops; |
80 | i->i_nlink = 1; | 80 | set_nlink(i, 1); |
81 | i->i_size = ea_size; | 81 | i->i_size = ea_size; |
82 | i->i_blocks = 1; | 82 | i->i_blocks = 1; |
83 | brelse(bh); | 83 | brelse(bh); |
@@ -101,7 +101,7 @@ void hpfs_read_inode(struct inode *i) | |||
101 | } | 101 | } |
102 | if (S_ISBLK(mode) || S_ISCHR(mode) || S_ISFIFO(mode) || S_ISSOCK(mode)) { | 102 | if (S_ISBLK(mode) || S_ISCHR(mode) || S_ISFIFO(mode) || S_ISSOCK(mode)) { |
103 | brelse(bh); | 103 | brelse(bh); |
104 | i->i_nlink = 1; | 104 | set_nlink(i, 1); |
105 | i->i_size = 0; | 105 | i->i_size = 0; |
106 | i->i_blocks = 1; | 106 | i->i_blocks = 1; |
107 | init_special_inode(i, mode, | 107 | init_special_inode(i, mode, |
@@ -125,13 +125,13 @@ void hpfs_read_inode(struct inode *i) | |||
125 | hpfs_count_dnodes(i->i_sb, hpfs_inode->i_dno, &n_dnodes, &n_subdirs, NULL); | 125 | hpfs_count_dnodes(i->i_sb, hpfs_inode->i_dno, &n_dnodes, &n_subdirs, NULL); |
126 | i->i_blocks = 4 * n_dnodes; | 126 | i->i_blocks = 4 * n_dnodes; |
127 | i->i_size = 2048 * n_dnodes; | 127 | i->i_size = 2048 * n_dnodes; |
128 | i->i_nlink = 2 + n_subdirs; | 128 | set_nlink(i, 2 + n_subdirs); |
129 | } else { | 129 | } else { |
130 | i->i_mode |= S_IFREG; | 130 | i->i_mode |= S_IFREG; |
131 | if (!hpfs_inode->i_ea_mode) i->i_mode &= ~0111; | 131 | if (!hpfs_inode->i_ea_mode) i->i_mode &= ~0111; |
132 | i->i_op = &hpfs_file_iops; | 132 | i->i_op = &hpfs_file_iops; |
133 | i->i_fop = &hpfs_file_ops; | 133 | i->i_fop = &hpfs_file_ops; |
134 | i->i_nlink = 1; | 134 | set_nlink(i, 1); |
135 | i->i_size = le32_to_cpu(fnode->file_size); | 135 | i->i_size = le32_to_cpu(fnode->file_size); |
136 | i->i_blocks = ((i->i_size + 511) >> 9) + 1; | 136 | i->i_blocks = ((i->i_size + 511) >> 9) + 1; |
137 | i->i_data.a_ops = &hpfs_aops; | 137 | i->i_data.a_ops = &hpfs_aops; |
diff --git a/fs/hpfs/namei.c b/fs/hpfs/namei.c index 2df69e2f07cf..ea91fcb0ef9b 100644 --- a/fs/hpfs/namei.c +++ b/fs/hpfs/namei.c | |||
@@ -56,7 +56,7 @@ static int hpfs_mkdir(struct inode *dir, struct dentry *dentry, int mode) | |||
56 | result->i_fop = &hpfs_dir_ops; | 56 | result->i_fop = &hpfs_dir_ops; |
57 | result->i_blocks = 4; | 57 | result->i_blocks = 4; |
58 | result->i_size = 2048; | 58 | result->i_size = 2048; |
59 | result->i_nlink = 2; | 59 | set_nlink(result, 2); |
60 | if (dee.read_only) | 60 | if (dee.read_only) |
61 | result->i_mode &= ~0222; | 61 | result->i_mode &= ~0222; |
62 | 62 | ||
@@ -150,7 +150,7 @@ static int hpfs_create(struct inode *dir, struct dentry *dentry, int mode, struc | |||
150 | result->i_mode &= ~0111; | 150 | result->i_mode &= ~0111; |
151 | result->i_op = &hpfs_file_iops; | 151 | result->i_op = &hpfs_file_iops; |
152 | result->i_fop = &hpfs_file_ops; | 152 | result->i_fop = &hpfs_file_ops; |
153 | result->i_nlink = 1; | 153 | set_nlink(result, 1); |
154 | hpfs_i(result)->i_parent_dir = dir->i_ino; | 154 | hpfs_i(result)->i_parent_dir = dir->i_ino; |
155 | result->i_ctime.tv_sec = result->i_mtime.tv_sec = result->i_atime.tv_sec = local_to_gmt(dir->i_sb, le32_to_cpu(dee.creation_date)); | 155 | result->i_ctime.tv_sec = result->i_mtime.tv_sec = result->i_atime.tv_sec = local_to_gmt(dir->i_sb, le32_to_cpu(dee.creation_date)); |
156 | result->i_ctime.tv_nsec = 0; | 156 | result->i_ctime.tv_nsec = 0; |
@@ -242,7 +242,7 @@ static int hpfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t | |||
242 | hpfs_i(result)->i_ea_size = 0; | 242 | hpfs_i(result)->i_ea_size = 0; |
243 | result->i_uid = current_fsuid(); | 243 | result->i_uid = current_fsuid(); |
244 | result->i_gid = current_fsgid(); | 244 | result->i_gid = current_fsgid(); |
245 | result->i_nlink = 1; | 245 | set_nlink(result, 1); |
246 | result->i_size = 0; | 246 | result->i_size = 0; |
247 | result->i_blocks = 1; | 247 | result->i_blocks = 1; |
248 | init_special_inode(result, mode, rdev); | 248 | init_special_inode(result, mode, rdev); |
@@ -318,7 +318,7 @@ static int hpfs_symlink(struct inode *dir, struct dentry *dentry, const char *sy | |||
318 | result->i_uid = current_fsuid(); | 318 | result->i_uid = current_fsuid(); |
319 | result->i_gid = current_fsgid(); | 319 | result->i_gid = current_fsgid(); |
320 | result->i_blocks = 1; | 320 | result->i_blocks = 1; |
321 | result->i_nlink = 1; | 321 | set_nlink(result, 1); |
322 | result->i_size = strlen(symlink); | 322 | result->i_size = strlen(symlink); |
323 | result->i_op = &page_symlink_inode_operations; | 323 | result->i_op = &page_symlink_inode_operations; |
324 | result->i_data.a_ops = &hpfs_symlink_aops; | 324 | result->i_data.a_ops = &hpfs_symlink_aops; |
diff --git a/fs/hppfs/hppfs.c b/fs/hppfs/hppfs.c index 970ea987b3f6..f590b1160c6c 100644 --- a/fs/hppfs/hppfs.c +++ b/fs/hppfs/hppfs.c | |||
@@ -702,7 +702,7 @@ static struct inode *get_inode(struct super_block *sb, struct dentry *dentry) | |||
702 | inode->i_ctime = proc_ino->i_ctime; | 702 | inode->i_ctime = proc_ino->i_ctime; |
703 | inode->i_ino = proc_ino->i_ino; | 703 | inode->i_ino = proc_ino->i_ino; |
704 | inode->i_mode = proc_ino->i_mode; | 704 | inode->i_mode = proc_ino->i_mode; |
705 | inode->i_nlink = proc_ino->i_nlink; | 705 | set_nlink(inode, proc_ino->i_nlink); |
706 | inode->i_size = proc_ino->i_size; | 706 | inode->i_size = proc_ino->i_size; |
707 | inode->i_blocks = proc_ino->i_blocks; | 707 | inode->i_blocks = proc_ino->i_blocks; |
708 | 708 | ||
diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c index a5d03672d04e..562adabef985 100644 --- a/fs/isofs/inode.c +++ b/fs/isofs/inode.c | |||
@@ -1319,7 +1319,7 @@ static int isofs_read_inode(struct inode *inode) | |||
1319 | inode->i_mode = S_IFDIR | sbi->s_dmode; | 1319 | inode->i_mode = S_IFDIR | sbi->s_dmode; |
1320 | else | 1320 | else |
1321 | inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO; | 1321 | inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO; |
1322 | inode->i_nlink = 1; /* | 1322 | set_nlink(inode, 1); /* |
1323 | * Set to 1. We know there are 2, but | 1323 | * Set to 1. We know there are 2, but |
1324 | * the find utility tries to optimize | 1324 | * the find utility tries to optimize |
1325 | * if it is 2, and it screws up. It is | 1325 | * if it is 2, and it screws up. It is |
@@ -1337,7 +1337,7 @@ static int isofs_read_inode(struct inode *inode) | |||
1337 | */ | 1337 | */ |
1338 | inode->i_mode = S_IFREG | S_IRUGO | S_IXUGO; | 1338 | inode->i_mode = S_IFREG | S_IRUGO | S_IXUGO; |
1339 | } | 1339 | } |
1340 | inode->i_nlink = 1; | 1340 | set_nlink(inode, 1); |
1341 | } | 1341 | } |
1342 | inode->i_uid = sbi->s_uid; | 1342 | inode->i_uid = sbi->s_uid; |
1343 | inode->i_gid = sbi->s_gid; | 1343 | inode->i_gid = sbi->s_gid; |
diff --git a/fs/isofs/rock.c b/fs/isofs/rock.c index 1fbc7de88f50..70e79d0c756a 100644 --- a/fs/isofs/rock.c +++ b/fs/isofs/rock.c | |||
@@ -363,7 +363,7 @@ repeat: | |||
363 | break; | 363 | break; |
364 | case SIG('P', 'X'): | 364 | case SIG('P', 'X'): |
365 | inode->i_mode = isonum_733(rr->u.PX.mode); | 365 | inode->i_mode = isonum_733(rr->u.PX.mode); |
366 | inode->i_nlink = isonum_733(rr->u.PX.n_links); | 366 | set_nlink(inode, isonum_733(rr->u.PX.n_links)); |
367 | inode->i_uid = isonum_733(rr->u.PX.uid); | 367 | inode->i_uid = isonum_733(rr->u.PX.uid); |
368 | inode->i_gid = isonum_733(rr->u.PX.gid); | 368 | inode->i_gid = isonum_733(rr->u.PX.gid); |
369 | break; | 369 | break; |
@@ -496,7 +496,7 @@ repeat: | |||
496 | goto out; | 496 | goto out; |
497 | } | 497 | } |
498 | inode->i_mode = reloc->i_mode; | 498 | inode->i_mode = reloc->i_mode; |
499 | inode->i_nlink = reloc->i_nlink; | 499 | set_nlink(inode, reloc->i_nlink); |
500 | inode->i_uid = reloc->i_uid; | 500 | inode->i_uid = reloc->i_uid; |
501 | inode->i_gid = reloc->i_gid; | 501 | inode->i_gid = reloc->i_gid; |
502 | inode->i_rdev = reloc->i_rdev; | 502 | inode->i_rdev = reloc->i_rdev; |
diff --git a/fs/jffs2/dir.c b/fs/jffs2/dir.c index 9659b7c00468..be6169bd8acd 100644 --- a/fs/jffs2/dir.c +++ b/fs/jffs2/dir.c | |||
@@ -245,7 +245,7 @@ static int jffs2_unlink(struct inode *dir_i, struct dentry *dentry) | |||
245 | ret = jffs2_do_unlink(c, dir_f, dentry->d_name.name, | 245 | ret = jffs2_do_unlink(c, dir_f, dentry->d_name.name, |
246 | dentry->d_name.len, dead_f, now); | 246 | dentry->d_name.len, dead_f, now); |
247 | if (dead_f->inocache) | 247 | if (dead_f->inocache) |
248 | dentry->d_inode->i_nlink = dead_f->inocache->pino_nlink; | 248 | set_nlink(dentry->d_inode, dead_f->inocache->pino_nlink); |
249 | if (!ret) | 249 | if (!ret) |
250 | dir_i->i_mtime = dir_i->i_ctime = ITIME(now); | 250 | dir_i->i_mtime = dir_i->i_ctime = ITIME(now); |
251 | return ret; | 251 | return ret; |
@@ -278,7 +278,7 @@ static int jffs2_link (struct dentry *old_dentry, struct inode *dir_i, struct de | |||
278 | 278 | ||
279 | if (!ret) { | 279 | if (!ret) { |
280 | mutex_lock(&f->sem); | 280 | mutex_lock(&f->sem); |
281 | old_dentry->d_inode->i_nlink = ++f->inocache->pino_nlink; | 281 | set_nlink(old_dentry->d_inode, ++f->inocache->pino_nlink); |
282 | mutex_unlock(&f->sem); | 282 | mutex_unlock(&f->sem); |
283 | d_instantiate(dentry, old_dentry->d_inode); | 283 | d_instantiate(dentry, old_dentry->d_inode); |
284 | dir_i->i_mtime = dir_i->i_ctime = ITIME(now); | 284 | dir_i->i_mtime = dir_i->i_ctime = ITIME(now); |
@@ -497,7 +497,7 @@ static int jffs2_mkdir (struct inode *dir_i, struct dentry *dentry, int mode) | |||
497 | f = JFFS2_INODE_INFO(inode); | 497 | f = JFFS2_INODE_INFO(inode); |
498 | 498 | ||
499 | /* Directories get nlink 2 at start */ | 499 | /* Directories get nlink 2 at start */ |
500 | inode->i_nlink = 2; | 500 | set_nlink(inode, 2); |
501 | /* but ic->pino_nlink is the parent ino# */ | 501 | /* but ic->pino_nlink is the parent ino# */ |
502 | f->inocache->pino_nlink = dir_i->i_ino; | 502 | f->inocache->pino_nlink = dir_i->i_ino; |
503 | 503 | ||
diff --git a/fs/jffs2/fs.c b/fs/jffs2/fs.c index bbcb9755dd2b..7286e44ac665 100644 --- a/fs/jffs2/fs.c +++ b/fs/jffs2/fs.c | |||
@@ -278,7 +278,7 @@ struct inode *jffs2_iget(struct super_block *sb, unsigned long ino) | |||
278 | inode->i_mtime = ITIME(je32_to_cpu(latest_node.mtime)); | 278 | inode->i_mtime = ITIME(je32_to_cpu(latest_node.mtime)); |
279 | inode->i_ctime = ITIME(je32_to_cpu(latest_node.ctime)); | 279 | inode->i_ctime = ITIME(je32_to_cpu(latest_node.ctime)); |
280 | 280 | ||
281 | inode->i_nlink = f->inocache->pino_nlink; | 281 | set_nlink(inode, f->inocache->pino_nlink); |
282 | 282 | ||
283 | inode->i_blocks = (inode->i_size + 511) >> 9; | 283 | inode->i_blocks = (inode->i_size + 511) >> 9; |
284 | 284 | ||
@@ -291,7 +291,7 @@ struct inode *jffs2_iget(struct super_block *sb, unsigned long ino) | |||
291 | case S_IFDIR: | 291 | case S_IFDIR: |
292 | { | 292 | { |
293 | struct jffs2_full_dirent *fd; | 293 | struct jffs2_full_dirent *fd; |
294 | inode->i_nlink = 2; /* parent and '.' */ | 294 | set_nlink(inode, 2); /* parent and '.' */ |
295 | 295 | ||
296 | for (fd=f->dents; fd; fd = fd->next) { | 296 | for (fd=f->dents; fd; fd = fd->next) { |
297 | if (fd->type == DT_DIR && fd->ino) | 297 | if (fd->type == DT_DIR && fd->ino) |
@@ -453,7 +453,7 @@ struct inode *jffs2_new_inode (struct inode *dir_i, umode_t mode, struct jffs2_r | |||
453 | iput(inode); | 453 | iput(inode); |
454 | return ERR_PTR(ret); | 454 | return ERR_PTR(ret); |
455 | } | 455 | } |
456 | inode->i_nlink = 1; | 456 | set_nlink(inode, 1); |
457 | inode->i_ino = je32_to_cpu(ri->ino); | 457 | inode->i_ino = je32_to_cpu(ri->ino); |
458 | inode->i_mode = jemode_to_cpu(ri->mode); | 458 | inode->i_mode = jemode_to_cpu(ri->mode); |
459 | inode->i_gid = je16_to_cpu(ri->gid); | 459 | inode->i_gid = je16_to_cpu(ri->gid); |
diff --git a/fs/jfs/jfs_imap.c b/fs/jfs/jfs_imap.c index b78b2f978f04..1b6f15f191b3 100644 --- a/fs/jfs/jfs_imap.c +++ b/fs/jfs/jfs_imap.c | |||
@@ -457,7 +457,7 @@ struct inode *diReadSpecial(struct super_block *sb, ino_t inum, int secondary) | |||
457 | /* read the page of fixed disk inode (AIT) in raw mode */ | 457 | /* read the page of fixed disk inode (AIT) in raw mode */ |
458 | mp = read_metapage(ip, address << sbi->l2nbperpage, PSIZE, 1); | 458 | mp = read_metapage(ip, address << sbi->l2nbperpage, PSIZE, 1); |
459 | if (mp == NULL) { | 459 | if (mp == NULL) { |
460 | ip->i_nlink = 1; /* Don't want iput() deleting it */ | 460 | set_nlink(ip, 1); /* Don't want iput() deleting it */ |
461 | iput(ip); | 461 | iput(ip); |
462 | return (NULL); | 462 | return (NULL); |
463 | } | 463 | } |
@@ -469,7 +469,7 @@ struct inode *diReadSpecial(struct super_block *sb, ino_t inum, int secondary) | |||
469 | /* copy on-disk inode to in-memory inode */ | 469 | /* copy on-disk inode to in-memory inode */ |
470 | if ((copy_from_dinode(dp, ip)) != 0) { | 470 | if ((copy_from_dinode(dp, ip)) != 0) { |
471 | /* handle bad return by returning NULL for ip */ | 471 | /* handle bad return by returning NULL for ip */ |
472 | ip->i_nlink = 1; /* Don't want iput() deleting it */ | 472 | set_nlink(ip, 1); /* Don't want iput() deleting it */ |
473 | iput(ip); | 473 | iput(ip); |
474 | /* release the page */ | 474 | /* release the page */ |
475 | release_metapage(mp); | 475 | release_metapage(mp); |
@@ -3076,7 +3076,7 @@ static int copy_from_dinode(struct dinode * dip, struct inode *ip) | |||
3076 | ip->i_mode |= 0001; | 3076 | ip->i_mode |= 0001; |
3077 | } | 3077 | } |
3078 | } | 3078 | } |
3079 | ip->i_nlink = le32_to_cpu(dip->di_nlink); | 3079 | set_nlink(ip, le32_to_cpu(dip->di_nlink)); |
3080 | 3080 | ||
3081 | jfs_ip->saved_uid = le32_to_cpu(dip->di_uid); | 3081 | jfs_ip->saved_uid = le32_to_cpu(dip->di_uid); |
3082 | if (sbi->uid == -1) | 3082 | if (sbi->uid == -1) |
diff --git a/fs/jfs/namei.c b/fs/jfs/namei.c index 94b0a624b85f..a112ad96e474 100644 --- a/fs/jfs/namei.c +++ b/fs/jfs/namei.c | |||
@@ -292,7 +292,7 @@ static int jfs_mkdir(struct inode *dip, struct dentry *dentry, int mode) | |||
292 | goto out3; | 292 | goto out3; |
293 | } | 293 | } |
294 | 294 | ||
295 | ip->i_nlink = 2; /* for '.' */ | 295 | set_nlink(ip, 2); /* for '.' */ |
296 | ip->i_op = &jfs_dir_inode_operations; | 296 | ip->i_op = &jfs_dir_inode_operations; |
297 | ip->i_fop = &jfs_dir_operations; | 297 | ip->i_fop = &jfs_dir_operations; |
298 | 298 | ||
diff --git a/fs/libfs.c b/fs/libfs.c index a2c0029cd95f..f6d411eef1e7 100644 --- a/fs/libfs.c +++ b/fs/libfs.c | |||
@@ -490,7 +490,7 @@ int simple_fill_super(struct super_block *s, unsigned long magic, | |||
490 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; | 490 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
491 | inode->i_op = &simple_dir_inode_operations; | 491 | inode->i_op = &simple_dir_inode_operations; |
492 | inode->i_fop = &simple_dir_operations; | 492 | inode->i_fop = &simple_dir_operations; |
493 | inode->i_nlink = 2; | 493 | set_nlink(inode, 2); |
494 | root = d_alloc_root(inode); | 494 | root = d_alloc_root(inode); |
495 | if (!root) { | 495 | if (!root) { |
496 | iput(inode); | 496 | iput(inode); |
diff --git a/fs/logfs/readwrite.c b/fs/logfs/readwrite.c index d8d09380c7de..2ac4217b7901 100644 --- a/fs/logfs/readwrite.c +++ b/fs/logfs/readwrite.c | |||
@@ -126,7 +126,7 @@ static void logfs_disk_to_inode(struct logfs_disk_inode *di, struct inode*inode) | |||
126 | inode->i_atime = be64_to_timespec(di->di_atime); | 126 | inode->i_atime = be64_to_timespec(di->di_atime); |
127 | inode->i_ctime = be64_to_timespec(di->di_ctime); | 127 | inode->i_ctime = be64_to_timespec(di->di_ctime); |
128 | inode->i_mtime = be64_to_timespec(di->di_mtime); | 128 | inode->i_mtime = be64_to_timespec(di->di_mtime); |
129 | inode->i_nlink = be32_to_cpu(di->di_refcount); | 129 | set_nlink(inode, be32_to_cpu(di->di_refcount)); |
130 | inode->i_generation = be32_to_cpu(di->di_generation); | 130 | inode->i_generation = be32_to_cpu(di->di_generation); |
131 | 131 | ||
132 | switch (inode->i_mode & S_IFMT) { | 132 | switch (inode->i_mode & S_IFMT) { |
diff --git a/fs/minix/inode.c b/fs/minix/inode.c index e7d23e25bf1d..64cdcd662ffc 100644 --- a/fs/minix/inode.c +++ b/fs/minix/inode.c | |||
@@ -446,7 +446,7 @@ static struct inode *V1_minix_iget(struct inode *inode) | |||
446 | inode->i_mode = raw_inode->i_mode; | 446 | inode->i_mode = raw_inode->i_mode; |
447 | inode->i_uid = (uid_t)raw_inode->i_uid; | 447 | inode->i_uid = (uid_t)raw_inode->i_uid; |
448 | inode->i_gid = (gid_t)raw_inode->i_gid; | 448 | inode->i_gid = (gid_t)raw_inode->i_gid; |
449 | inode->i_nlink = raw_inode->i_nlinks; | 449 | set_nlink(inode, raw_inode->i_nlinks); |
450 | inode->i_size = raw_inode->i_size; | 450 | inode->i_size = raw_inode->i_size; |
451 | inode->i_mtime.tv_sec = inode->i_atime.tv_sec = inode->i_ctime.tv_sec = raw_inode->i_time; | 451 | inode->i_mtime.tv_sec = inode->i_atime.tv_sec = inode->i_ctime.tv_sec = raw_inode->i_time; |
452 | inode->i_mtime.tv_nsec = 0; | 452 | inode->i_mtime.tv_nsec = 0; |
@@ -479,7 +479,7 @@ static struct inode *V2_minix_iget(struct inode *inode) | |||
479 | inode->i_mode = raw_inode->i_mode; | 479 | inode->i_mode = raw_inode->i_mode; |
480 | inode->i_uid = (uid_t)raw_inode->i_uid; | 480 | inode->i_uid = (uid_t)raw_inode->i_uid; |
481 | inode->i_gid = (gid_t)raw_inode->i_gid; | 481 | inode->i_gid = (gid_t)raw_inode->i_gid; |
482 | inode->i_nlink = raw_inode->i_nlinks; | 482 | set_nlink(inode, raw_inode->i_nlinks); |
483 | inode->i_size = raw_inode->i_size; | 483 | inode->i_size = raw_inode->i_size; |
484 | inode->i_mtime.tv_sec = raw_inode->i_mtime; | 484 | inode->i_mtime.tv_sec = raw_inode->i_mtime; |
485 | inode->i_atime.tv_sec = raw_inode->i_atime; | 485 | inode->i_atime.tv_sec = raw_inode->i_atime; |
diff --git a/fs/ncpfs/inode.c b/fs/ncpfs/inode.c index 202f370526a7..5b5fa33b6b9d 100644 --- a/fs/ncpfs/inode.c +++ b/fs/ncpfs/inode.c | |||
@@ -228,7 +228,7 @@ static void ncp_set_attr(struct inode *inode, struct ncp_entry_info *nwinfo) | |||
228 | 228 | ||
229 | DDPRINTK("ncp_read_inode: inode->i_mode = %u\n", inode->i_mode); | 229 | DDPRINTK("ncp_read_inode: inode->i_mode = %u\n", inode->i_mode); |
230 | 230 | ||
231 | inode->i_nlink = 1; | 231 | set_nlink(inode, 1); |
232 | inode->i_uid = server->m.uid; | 232 | inode->i_uid = server->m.uid; |
233 | inode->i_gid = server->m.gid; | 233 | inode->i_gid = server->m.gid; |
234 | 234 | ||
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index 1fc715acc2da..c07a55aec838 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c | |||
@@ -355,7 +355,7 @@ nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr) | |||
355 | | NFS_INO_INVALID_DATA | 355 | | NFS_INO_INVALID_DATA |
356 | | NFS_INO_REVAL_PAGECACHE; | 356 | | NFS_INO_REVAL_PAGECACHE; |
357 | if (fattr->valid & NFS_ATTR_FATTR_NLINK) | 357 | if (fattr->valid & NFS_ATTR_FATTR_NLINK) |
358 | inode->i_nlink = fattr->nlink; | 358 | set_nlink(inode, fattr->nlink); |
359 | else if (nfs_server_capable(inode, NFS_CAP_NLINK)) | 359 | else if (nfs_server_capable(inode, NFS_CAP_NLINK)) |
360 | nfsi->cache_validity |= NFS_INO_INVALID_ATTR; | 360 | nfsi->cache_validity |= NFS_INO_INVALID_ATTR; |
361 | if (fattr->valid & NFS_ATTR_FATTR_OWNER) | 361 | if (fattr->valid & NFS_ATTR_FATTR_OWNER) |
@@ -1361,7 +1361,7 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr) | |||
1361 | invalid |= NFS_INO_INVALID_ATTR; | 1361 | invalid |= NFS_INO_INVALID_ATTR; |
1362 | if (S_ISDIR(inode->i_mode)) | 1362 | if (S_ISDIR(inode->i_mode)) |
1363 | invalid |= NFS_INO_INVALID_DATA; | 1363 | invalid |= NFS_INO_INVALID_DATA; |
1364 | inode->i_nlink = fattr->nlink; | 1364 | set_nlink(inode, fattr->nlink); |
1365 | } | 1365 | } |
1366 | } else if (server->caps & NFS_CAP_NLINK) | 1366 | } else if (server->caps & NFS_CAP_NLINK) |
1367 | invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR | 1367 | invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR |
diff --git a/fs/nilfs2/inode.c b/fs/nilfs2/inode.c index 08ac272b7c28..b50ffb72e5b3 100644 --- a/fs/nilfs2/inode.c +++ b/fs/nilfs2/inode.c | |||
@@ -396,7 +396,7 @@ int nilfs_read_inode_common(struct inode *inode, | |||
396 | inode->i_mode = le16_to_cpu(raw_inode->i_mode); | 396 | inode->i_mode = le16_to_cpu(raw_inode->i_mode); |
397 | inode->i_uid = (uid_t)le32_to_cpu(raw_inode->i_uid); | 397 | inode->i_uid = (uid_t)le32_to_cpu(raw_inode->i_uid); |
398 | inode->i_gid = (gid_t)le32_to_cpu(raw_inode->i_gid); | 398 | inode->i_gid = (gid_t)le32_to_cpu(raw_inode->i_gid); |
399 | inode->i_nlink = le16_to_cpu(raw_inode->i_links_count); | 399 | set_nlink(inode, le16_to_cpu(raw_inode->i_links_count)); |
400 | inode->i_size = le64_to_cpu(raw_inode->i_size); | 400 | inode->i_size = le64_to_cpu(raw_inode->i_size); |
401 | inode->i_atime.tv_sec = le64_to_cpu(raw_inode->i_mtime); | 401 | inode->i_atime.tv_sec = le64_to_cpu(raw_inode->i_mtime); |
402 | inode->i_ctime.tv_sec = le64_to_cpu(raw_inode->i_ctime); | 402 | inode->i_ctime.tv_sec = le64_to_cpu(raw_inode->i_ctime); |
diff --git a/fs/nilfs2/namei.c b/fs/nilfs2/namei.c index a3141990061e..768982de10e4 100644 --- a/fs/nilfs2/namei.c +++ b/fs/nilfs2/namei.c | |||
@@ -289,7 +289,7 @@ static int nilfs_do_unlink(struct inode *dir, struct dentry *dentry) | |||
289 | nilfs_warning(inode->i_sb, __func__, | 289 | nilfs_warning(inode->i_sb, __func__, |
290 | "deleting nonexistent file (%lu), %d\n", | 290 | "deleting nonexistent file (%lu), %d\n", |
291 | inode->i_ino, inode->i_nlink); | 291 | inode->i_ino, inode->i_nlink); |
292 | inode->i_nlink = 1; | 292 | set_nlink(inode, 1); |
293 | } | 293 | } |
294 | err = nilfs_delete_entry(de, page); | 294 | err = nilfs_delete_entry(de, page); |
295 | if (err) | 295 | if (err) |
diff --git a/fs/ntfs/inode.c b/fs/ntfs/inode.c index 1371487da955..97e2dacbc867 100644 --- a/fs/ntfs/inode.c +++ b/fs/ntfs/inode.c | |||
@@ -612,7 +612,7 @@ static int ntfs_read_locked_inode(struct inode *vi) | |||
612 | * might be tricky due to vfs interactions. Need to think about this | 612 | * might be tricky due to vfs interactions. Need to think about this |
613 | * some more when implementing the unlink command. | 613 | * some more when implementing the unlink command. |
614 | */ | 614 | */ |
615 | vi->i_nlink = le16_to_cpu(m->link_count); | 615 | set_nlink(vi, le16_to_cpu(m->link_count)); |
616 | /* | 616 | /* |
617 | * FIXME: Reparse points can have the directory bit set even though | 617 | * FIXME: Reparse points can have the directory bit set even though |
618 | * they would be S_IFLNK. Need to deal with this further below when we | 618 | * they would be S_IFLNK. Need to deal with this further below when we |
@@ -634,7 +634,7 @@ static int ntfs_read_locked_inode(struct inode *vi) | |||
634 | vi->i_mode &= ~vol->dmask; | 634 | vi->i_mode &= ~vol->dmask; |
635 | /* Things break without this kludge! */ | 635 | /* Things break without this kludge! */ |
636 | if (vi->i_nlink > 1) | 636 | if (vi->i_nlink > 1) |
637 | vi->i_nlink = 1; | 637 | set_nlink(vi, 1); |
638 | } else { | 638 | } else { |
639 | vi->i_mode |= S_IFREG; | 639 | vi->i_mode |= S_IFREG; |
640 | /* Apply the file permissions mask set in the mount options. */ | 640 | /* Apply the file permissions mask set in the mount options. */ |
@@ -1242,7 +1242,7 @@ static int ntfs_read_locked_attr_inode(struct inode *base_vi, struct inode *vi) | |||
1242 | vi->i_version = base_vi->i_version; | 1242 | vi->i_version = base_vi->i_version; |
1243 | vi->i_uid = base_vi->i_uid; | 1243 | vi->i_uid = base_vi->i_uid; |
1244 | vi->i_gid = base_vi->i_gid; | 1244 | vi->i_gid = base_vi->i_gid; |
1245 | vi->i_nlink = base_vi->i_nlink; | 1245 | set_nlink(vi, base_vi->i_nlink); |
1246 | vi->i_mtime = base_vi->i_mtime; | 1246 | vi->i_mtime = base_vi->i_mtime; |
1247 | vi->i_ctime = base_vi->i_ctime; | 1247 | vi->i_ctime = base_vi->i_ctime; |
1248 | vi->i_atime = base_vi->i_atime; | 1248 | vi->i_atime = base_vi->i_atime; |
@@ -1508,7 +1508,7 @@ static int ntfs_read_locked_index_inode(struct inode *base_vi, struct inode *vi) | |||
1508 | vi->i_version = base_vi->i_version; | 1508 | vi->i_version = base_vi->i_version; |
1509 | vi->i_uid = base_vi->i_uid; | 1509 | vi->i_uid = base_vi->i_uid; |
1510 | vi->i_gid = base_vi->i_gid; | 1510 | vi->i_gid = base_vi->i_gid; |
1511 | vi->i_nlink = base_vi->i_nlink; | 1511 | set_nlink(vi, base_vi->i_nlink); |
1512 | vi->i_mtime = base_vi->i_mtime; | 1512 | vi->i_mtime = base_vi->i_mtime; |
1513 | vi->i_ctime = base_vi->i_ctime; | 1513 | vi->i_ctime = base_vi->i_ctime; |
1514 | vi->i_atime = base_vi->i_atime; | 1514 | vi->i_atime = base_vi->i_atime; |
diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c index 8582e3f4f120..e2878b5895fb 100644 --- a/fs/ocfs2/dir.c +++ b/fs/ocfs2/dir.c | |||
@@ -2292,7 +2292,7 @@ static int ocfs2_fill_new_dir_id(struct ocfs2_super *osb, | |||
2292 | ocfs2_journal_dirty(handle, di_bh); | 2292 | ocfs2_journal_dirty(handle, di_bh); |
2293 | 2293 | ||
2294 | i_size_write(inode, size); | 2294 | i_size_write(inode, size); |
2295 | inode->i_nlink = 2; | 2295 | set_nlink(inode, 2); |
2296 | inode->i_blocks = ocfs2_inode_sector_count(inode); | 2296 | inode->i_blocks = ocfs2_inode_sector_count(inode); |
2297 | 2297 | ||
2298 | ret = ocfs2_mark_inode_dirty(handle, inode, di_bh); | 2298 | ret = ocfs2_mark_inode_dirty(handle, inode, di_bh); |
@@ -2354,7 +2354,7 @@ static int ocfs2_fill_new_dir_el(struct ocfs2_super *osb, | |||
2354 | ocfs2_journal_dirty(handle, new_bh); | 2354 | ocfs2_journal_dirty(handle, new_bh); |
2355 | 2355 | ||
2356 | i_size_write(inode, inode->i_sb->s_blocksize); | 2356 | i_size_write(inode, inode->i_sb->s_blocksize); |
2357 | inode->i_nlink = 2; | 2357 | set_nlink(inode, 2); |
2358 | inode->i_blocks = ocfs2_inode_sector_count(inode); | 2358 | inode->i_blocks = ocfs2_inode_sector_count(inode); |
2359 | status = ocfs2_mark_inode_dirty(handle, inode, fe_bh); | 2359 | status = ocfs2_mark_inode_dirty(handle, inode, fe_bh); |
2360 | if (status < 0) { | 2360 | if (status < 0) { |
diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c index 7642d7ca73e5..e1ed5e502ff2 100644 --- a/fs/ocfs2/dlmglue.c +++ b/fs/ocfs2/dlmglue.c | |||
@@ -2092,7 +2092,7 @@ static void ocfs2_refresh_inode_from_lvb(struct inode *inode) | |||
2092 | inode->i_uid = be32_to_cpu(lvb->lvb_iuid); | 2092 | inode->i_uid = be32_to_cpu(lvb->lvb_iuid); |
2093 | inode->i_gid = be32_to_cpu(lvb->lvb_igid); | 2093 | inode->i_gid = be32_to_cpu(lvb->lvb_igid); |
2094 | inode->i_mode = be16_to_cpu(lvb->lvb_imode); | 2094 | inode->i_mode = be16_to_cpu(lvb->lvb_imode); |
2095 | inode->i_nlink = be16_to_cpu(lvb->lvb_inlink); | 2095 | set_nlink(inode, be16_to_cpu(lvb->lvb_inlink)); |
2096 | ocfs2_unpack_timespec(&inode->i_atime, | 2096 | ocfs2_unpack_timespec(&inode->i_atime, |
2097 | be64_to_cpu(lvb->lvb_iatime_packed)); | 2097 | be64_to_cpu(lvb->lvb_iatime_packed)); |
2098 | ocfs2_unpack_timespec(&inode->i_mtime, | 2098 | ocfs2_unpack_timespec(&inode->i_mtime, |
diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c index b4c8bb6b8d28..a22d2c098890 100644 --- a/fs/ocfs2/inode.c +++ b/fs/ocfs2/inode.c | |||
@@ -291,7 +291,7 @@ void ocfs2_populate_inode(struct inode *inode, struct ocfs2_dinode *fe, | |||
291 | (unsigned long long)OCFS2_I(inode)->ip_blkno, | 291 | (unsigned long long)OCFS2_I(inode)->ip_blkno, |
292 | (unsigned long long)le64_to_cpu(fe->i_blkno)); | 292 | (unsigned long long)le64_to_cpu(fe->i_blkno)); |
293 | 293 | ||
294 | inode->i_nlink = ocfs2_read_links_count(fe); | 294 | set_nlink(inode, ocfs2_read_links_count(fe)); |
295 | 295 | ||
296 | trace_ocfs2_populate_inode(OCFS2_I(inode)->ip_blkno, | 296 | trace_ocfs2_populate_inode(OCFS2_I(inode)->ip_blkno, |
297 | le32_to_cpu(fe->i_flags)); | 297 | le32_to_cpu(fe->i_flags)); |
@@ -1290,7 +1290,7 @@ void ocfs2_refresh_inode(struct inode *inode, | |||
1290 | OCFS2_I(inode)->ip_dyn_features = le16_to_cpu(fe->i_dyn_features); | 1290 | OCFS2_I(inode)->ip_dyn_features = le16_to_cpu(fe->i_dyn_features); |
1291 | ocfs2_set_inode_flags(inode); | 1291 | ocfs2_set_inode_flags(inode); |
1292 | i_size_write(inode, le64_to_cpu(fe->i_size)); | 1292 | i_size_write(inode, le64_to_cpu(fe->i_size)); |
1293 | inode->i_nlink = ocfs2_read_links_count(fe); | 1293 | set_nlink(inode, ocfs2_read_links_count(fe)); |
1294 | inode->i_uid = le32_to_cpu(fe->i_uid); | 1294 | inode->i_uid = le32_to_cpu(fe->i_uid); |
1295 | inode->i_gid = le32_to_cpu(fe->i_gid); | 1295 | inode->i_gid = le32_to_cpu(fe->i_gid); |
1296 | inode->i_mode = le16_to_cpu(fe->i_mode); | 1296 | inode->i_mode = le16_to_cpu(fe->i_mode); |
diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c index ea0ecbdda58c..a8b2bfea574e 100644 --- a/fs/ocfs2/namei.c +++ b/fs/ocfs2/namei.c | |||
@@ -199,7 +199,7 @@ static struct inode *ocfs2_get_init_inode(struct inode *dir, int mode) | |||
199 | * these are used by the support functions here and in | 199 | * these are used by the support functions here and in |
200 | * callers. */ | 200 | * callers. */ |
201 | if (S_ISDIR(mode)) | 201 | if (S_ISDIR(mode)) |
202 | inode->i_nlink = 2; | 202 | set_nlink(inode, 2); |
203 | inode_init_owner(inode, dir, mode); | 203 | inode_init_owner(inode, dir, mode); |
204 | dquot_initialize(inode); | 204 | dquot_initialize(inode); |
205 | return inode; | 205 | return inode; |
@@ -2016,7 +2016,7 @@ static int ocfs2_orphan_add(struct ocfs2_super *osb, | |||
2016 | orphan_fe = (struct ocfs2_dinode *) orphan_dir_bh->b_data; | 2016 | orphan_fe = (struct ocfs2_dinode *) orphan_dir_bh->b_data; |
2017 | if (S_ISDIR(inode->i_mode)) | 2017 | if (S_ISDIR(inode->i_mode)) |
2018 | ocfs2_add_links_count(orphan_fe, 1); | 2018 | ocfs2_add_links_count(orphan_fe, 1); |
2019 | orphan_dir_inode->i_nlink = ocfs2_read_links_count(orphan_fe); | 2019 | set_nlink(orphan_dir_inode, ocfs2_read_links_count(orphan_fe)); |
2020 | ocfs2_journal_dirty(handle, orphan_dir_bh); | 2020 | ocfs2_journal_dirty(handle, orphan_dir_bh); |
2021 | 2021 | ||
2022 | status = __ocfs2_add_entry(handle, orphan_dir_inode, name, | 2022 | status = __ocfs2_add_entry(handle, orphan_dir_inode, name, |
@@ -2114,7 +2114,7 @@ int ocfs2_orphan_del(struct ocfs2_super *osb, | |||
2114 | orphan_fe = (struct ocfs2_dinode *) orphan_dir_bh->b_data; | 2114 | orphan_fe = (struct ocfs2_dinode *) orphan_dir_bh->b_data; |
2115 | if (S_ISDIR(inode->i_mode)) | 2115 | if (S_ISDIR(inode->i_mode)) |
2116 | ocfs2_add_links_count(orphan_fe, -1); | 2116 | ocfs2_add_links_count(orphan_fe, -1); |
2117 | orphan_dir_inode->i_nlink = ocfs2_read_links_count(orphan_fe); | 2117 | set_nlink(orphan_dir_inode, ocfs2_read_links_count(orphan_fe)); |
2118 | ocfs2_journal_dirty(handle, orphan_dir_bh); | 2118 | ocfs2_journal_dirty(handle, orphan_dir_bh); |
2119 | 2119 | ||
2120 | leave: | 2120 | leave: |
@@ -2435,7 +2435,7 @@ int ocfs2_mv_orphaned_inode_to_new(struct inode *dir, | |||
2435 | di = (struct ocfs2_dinode *)di_bh->b_data; | 2435 | di = (struct ocfs2_dinode *)di_bh->b_data; |
2436 | le32_add_cpu(&di->i_flags, -OCFS2_ORPHANED_FL); | 2436 | le32_add_cpu(&di->i_flags, -OCFS2_ORPHANED_FL); |
2437 | di->i_orphaned_slot = 0; | 2437 | di->i_orphaned_slot = 0; |
2438 | inode->i_nlink = 1; | 2438 | set_nlink(inode, 1); |
2439 | ocfs2_set_links_count(di, inode->i_nlink); | 2439 | ocfs2_set_links_count(di, inode->i_nlink); |
2440 | ocfs2_journal_dirty(handle, di_bh); | 2440 | ocfs2_journal_dirty(handle, di_bh); |
2441 | 2441 | ||
diff --git a/fs/openpromfs/inode.c b/fs/openpromfs/inode.c index a2a5bff774e3..e4e0ff7962e2 100644 --- a/fs/openpromfs/inode.c +++ b/fs/openpromfs/inode.c | |||
@@ -242,7 +242,7 @@ found: | |||
242 | inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO; | 242 | inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO; |
243 | inode->i_op = &openprom_inode_operations; | 243 | inode->i_op = &openprom_inode_operations; |
244 | inode->i_fop = &openprom_operations; | 244 | inode->i_fop = &openprom_operations; |
245 | inode->i_nlink = 2; | 245 | set_nlink(inode, 2); |
246 | break; | 246 | break; |
247 | case op_inode_prop: | 247 | case op_inode_prop: |
248 | if (!strcmp(dp->name, "options") && (len == 17) && | 248 | if (!strcmp(dp->name, "options") && (len == 17) && |
@@ -251,7 +251,7 @@ found: | |||
251 | else | 251 | else |
252 | inode->i_mode = S_IFREG | S_IRUGO; | 252 | inode->i_mode = S_IFREG | S_IRUGO; |
253 | inode->i_fop = &openpromfs_prop_ops; | 253 | inode->i_fop = &openpromfs_prop_ops; |
254 | inode->i_nlink = 1; | 254 | set_nlink(inode, 1); |
255 | inode->i_size = ent_oi->u.prop->length; | 255 | inode->i_size = ent_oi->u.prop->length; |
256 | break; | 256 | break; |
257 | } | 257 | } |
diff --git a/fs/proc/base.c b/fs/proc/base.c index 8f0087e20e16..851ba3dcdc29 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c | |||
@@ -2248,7 +2248,7 @@ static struct dentry *proc_pident_instantiate(struct inode *dir, | |||
2248 | ei = PROC_I(inode); | 2248 | ei = PROC_I(inode); |
2249 | inode->i_mode = p->mode; | 2249 | inode->i_mode = p->mode; |
2250 | if (S_ISDIR(inode->i_mode)) | 2250 | if (S_ISDIR(inode->i_mode)) |
2251 | inode->i_nlink = 2; /* Use getattr to fix if necessary */ | 2251 | set_nlink(inode, 2); /* Use getattr to fix if necessary */ |
2252 | if (p->iop) | 2252 | if (p->iop) |
2253 | inode->i_op = p->iop; | 2253 | inode->i_op = p->iop; |
2254 | if (p->fop) | 2254 | if (p->fop) |
@@ -2642,7 +2642,7 @@ static struct dentry *proc_base_instantiate(struct inode *dir, | |||
2642 | 2642 | ||
2643 | inode->i_mode = p->mode; | 2643 | inode->i_mode = p->mode; |
2644 | if (S_ISDIR(inode->i_mode)) | 2644 | if (S_ISDIR(inode->i_mode)) |
2645 | inode->i_nlink = 2; | 2645 | set_nlink(inode, 2); |
2646 | if (S_ISLNK(inode->i_mode)) | 2646 | if (S_ISLNK(inode->i_mode)) |
2647 | inode->i_size = 64; | 2647 | inode->i_size = 64; |
2648 | if (p->iop) | 2648 | if (p->iop) |
@@ -2981,8 +2981,8 @@ static struct dentry *proc_pid_instantiate(struct inode *dir, | |||
2981 | inode->i_fop = &proc_tgid_base_operations; | 2981 | inode->i_fop = &proc_tgid_base_operations; |
2982 | inode->i_flags|=S_IMMUTABLE; | 2982 | inode->i_flags|=S_IMMUTABLE; |
2983 | 2983 | ||
2984 | inode->i_nlink = 2 + pid_entry_count_dirs(tgid_base_stuff, | 2984 | set_nlink(inode, 2 + pid_entry_count_dirs(tgid_base_stuff, |
2985 | ARRAY_SIZE(tgid_base_stuff)); | 2985 | ARRAY_SIZE(tgid_base_stuff))); |
2986 | 2986 | ||
2987 | d_set_d_op(dentry, &pid_dentry_operations); | 2987 | d_set_d_op(dentry, &pid_dentry_operations); |
2988 | 2988 | ||
@@ -3233,8 +3233,8 @@ static struct dentry *proc_task_instantiate(struct inode *dir, | |||
3233 | inode->i_fop = &proc_tid_base_operations; | 3233 | inode->i_fop = &proc_tid_base_operations; |
3234 | inode->i_flags|=S_IMMUTABLE; | 3234 | inode->i_flags|=S_IMMUTABLE; |
3235 | 3235 | ||
3236 | inode->i_nlink = 2 + pid_entry_count_dirs(tid_base_stuff, | 3236 | set_nlink(inode, 2 + pid_entry_count_dirs(tid_base_stuff, |
3237 | ARRAY_SIZE(tid_base_stuff)); | 3237 | ARRAY_SIZE(tid_base_stuff))); |
3238 | 3238 | ||
3239 | d_set_d_op(dentry, &pid_dentry_operations); | 3239 | d_set_d_op(dentry, &pid_dentry_operations); |
3240 | 3240 | ||
diff --git a/fs/proc/generic.c b/fs/proc/generic.c index 9d99131d0d65..10090d9c7ad5 100644 --- a/fs/proc/generic.c +++ b/fs/proc/generic.c | |||
@@ -283,7 +283,7 @@ static int proc_getattr(struct vfsmount *mnt, struct dentry *dentry, | |||
283 | struct inode *inode = dentry->d_inode; | 283 | struct inode *inode = dentry->d_inode; |
284 | struct proc_dir_entry *de = PROC_I(inode)->pde; | 284 | struct proc_dir_entry *de = PROC_I(inode)->pde; |
285 | if (de && de->nlink) | 285 | if (de && de->nlink) |
286 | inode->i_nlink = de->nlink; | 286 | set_nlink(inode, de->nlink); |
287 | 287 | ||
288 | generic_fillattr(inode, stat); | 288 | generic_fillattr(inode, stat); |
289 | return 0; | 289 | return 0; |
diff --git a/fs/proc/inode.c b/fs/proc/inode.c index 7ed72d6c1c6f..7737c5468a40 100644 --- a/fs/proc/inode.c +++ b/fs/proc/inode.c | |||
@@ -445,7 +445,7 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de) | |||
445 | if (de->size) | 445 | if (de->size) |
446 | inode->i_size = de->size; | 446 | inode->i_size = de->size; |
447 | if (de->nlink) | 447 | if (de->nlink) |
448 | inode->i_nlink = de->nlink; | 448 | set_nlink(inode, de->nlink); |
449 | if (de->proc_iops) | 449 | if (de->proc_iops) |
450 | inode->i_op = de->proc_iops; | 450 | inode->i_op = de->proc_iops; |
451 | if (de->proc_fops) { | 451 | if (de->proc_fops) { |
diff --git a/fs/qnx4/inode.c b/fs/qnx4/inode.c index 2b0646613f5a..3bdd21418432 100644 --- a/fs/qnx4/inode.c +++ b/fs/qnx4/inode.c | |||
@@ -379,7 +379,7 @@ struct inode *qnx4_iget(struct super_block *sb, unsigned long ino) | |||
379 | inode->i_mode = le16_to_cpu(raw_inode->di_mode); | 379 | inode->i_mode = le16_to_cpu(raw_inode->di_mode); |
380 | inode->i_uid = (uid_t)le16_to_cpu(raw_inode->di_uid); | 380 | inode->i_uid = (uid_t)le16_to_cpu(raw_inode->di_uid); |
381 | inode->i_gid = (gid_t)le16_to_cpu(raw_inode->di_gid); | 381 | inode->i_gid = (gid_t)le16_to_cpu(raw_inode->di_gid); |
382 | inode->i_nlink = le16_to_cpu(raw_inode->di_nlink); | 382 | set_nlink(inode, le16_to_cpu(raw_inode->di_nlink)); |
383 | inode->i_size = le32_to_cpu(raw_inode->di_size); | 383 | inode->i_size = le32_to_cpu(raw_inode->di_size); |
384 | inode->i_mtime.tv_sec = le32_to_cpu(raw_inode->di_mtime); | 384 | inode->i_mtime.tv_sec = le32_to_cpu(raw_inode->di_mtime); |
385 | inode->i_mtime.tv_nsec = 0; | 385 | inode->i_mtime.tv_nsec = 0; |
diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c index c425441c6942..950f13af0951 100644 --- a/fs/reiserfs/inode.c +++ b/fs/reiserfs/inode.c | |||
@@ -1154,7 +1154,7 @@ static void init_inode(struct inode *inode, struct treepath *path) | |||
1154 | set_inode_item_key_version(inode, KEY_FORMAT_3_5); | 1154 | set_inode_item_key_version(inode, KEY_FORMAT_3_5); |
1155 | set_inode_sd_version(inode, STAT_DATA_V1); | 1155 | set_inode_sd_version(inode, STAT_DATA_V1); |
1156 | inode->i_mode = sd_v1_mode(sd); | 1156 | inode->i_mode = sd_v1_mode(sd); |
1157 | inode->i_nlink = sd_v1_nlink(sd); | 1157 | set_nlink(inode, sd_v1_nlink(sd)); |
1158 | inode->i_uid = sd_v1_uid(sd); | 1158 | inode->i_uid = sd_v1_uid(sd); |
1159 | inode->i_gid = sd_v1_gid(sd); | 1159 | inode->i_gid = sd_v1_gid(sd); |
1160 | inode->i_size = sd_v1_size(sd); | 1160 | inode->i_size = sd_v1_size(sd); |
@@ -1199,7 +1199,7 @@ static void init_inode(struct inode *inode, struct treepath *path) | |||
1199 | struct stat_data *sd = (struct stat_data *)B_I_PITEM(bh, ih); | 1199 | struct stat_data *sd = (struct stat_data *)B_I_PITEM(bh, ih); |
1200 | 1200 | ||
1201 | inode->i_mode = sd_v2_mode(sd); | 1201 | inode->i_mode = sd_v2_mode(sd); |
1202 | inode->i_nlink = sd_v2_nlink(sd); | 1202 | set_nlink(inode, sd_v2_nlink(sd)); |
1203 | inode->i_uid = sd_v2_uid(sd); | 1203 | inode->i_uid = sd_v2_uid(sd); |
1204 | inode->i_size = sd_v2_size(sd); | 1204 | inode->i_size = sd_v2_size(sd); |
1205 | inode->i_gid = sd_v2_gid(sd); | 1205 | inode->i_gid = sd_v2_gid(sd); |
@@ -1832,7 +1832,7 @@ int reiserfs_new_inode(struct reiserfs_transaction_handle *th, | |||
1832 | #endif | 1832 | #endif |
1833 | 1833 | ||
1834 | /* fill stat data */ | 1834 | /* fill stat data */ |
1835 | inode->i_nlink = (S_ISDIR(mode) ? 2 : 1); | 1835 | set_nlink(inode, (S_ISDIR(mode) ? 2 : 1)); |
1836 | 1836 | ||
1837 | /* uid and gid must already be set by the caller for quota init */ | 1837 | /* uid and gid must already be set by the caller for quota init */ |
1838 | 1838 | ||
diff --git a/fs/reiserfs/namei.c b/fs/reiserfs/namei.c index 6ce332821633..80058e8ce361 100644 --- a/fs/reiserfs/namei.c +++ b/fs/reiserfs/namei.c | |||
@@ -19,7 +19,7 @@ | |||
19 | #include <linux/reiserfs_xattr.h> | 19 | #include <linux/reiserfs_xattr.h> |
20 | #include <linux/quotaops.h> | 20 | #include <linux/quotaops.h> |
21 | 21 | ||
22 | #define INC_DIR_INODE_NLINK(i) if (i->i_nlink != 1) { inc_nlink(i); if (i->i_nlink >= REISERFS_LINK_MAX) i->i_nlink=1; } | 22 | #define INC_DIR_INODE_NLINK(i) if (i->i_nlink != 1) { inc_nlink(i); if (i->i_nlink >= REISERFS_LINK_MAX) set_nlink(i, 1); } |
23 | #define DEC_DIR_INODE_NLINK(i) if (i->i_nlink != 1) drop_nlink(i); | 23 | #define DEC_DIR_INODE_NLINK(i) if (i->i_nlink != 1) drop_nlink(i); |
24 | 24 | ||
25 | // directory item contains array of entry headers. This performs | 25 | // directory item contains array of entry headers. This performs |
@@ -964,7 +964,7 @@ static int reiserfs_unlink(struct inode *dir, struct dentry *dentry) | |||
964 | reiserfs_warning(inode->i_sb, "reiserfs-7042", | 964 | reiserfs_warning(inode->i_sb, "reiserfs-7042", |
965 | "deleting nonexistent file (%lu), %d", | 965 | "deleting nonexistent file (%lu), %d", |
966 | inode->i_ino, inode->i_nlink); | 966 | inode->i_ino, inode->i_nlink); |
967 | inode->i_nlink = 1; | 967 | set_nlink(inode, 1); |
968 | } | 968 | } |
969 | 969 | ||
970 | drop_nlink(inode); | 970 | drop_nlink(inode); |
diff --git a/fs/romfs/super.c b/fs/romfs/super.c index 2305e3121cb1..8b4089f30408 100644 --- a/fs/romfs/super.c +++ b/fs/romfs/super.c | |||
@@ -337,7 +337,7 @@ static struct inode *romfs_iget(struct super_block *sb, unsigned long pos) | |||
337 | inode->i_metasize = (ROMFH_SIZE + nlen + 1 + ROMFH_PAD) & ROMFH_MASK; | 337 | inode->i_metasize = (ROMFH_SIZE + nlen + 1 + ROMFH_PAD) & ROMFH_MASK; |
338 | inode->i_dataoffset = pos + inode->i_metasize; | 338 | inode->i_dataoffset = pos + inode->i_metasize; |
339 | 339 | ||
340 | i->i_nlink = 1; /* Hard to decide.. */ | 340 | set_nlink(i, 1); /* Hard to decide.. */ |
341 | i->i_size = be32_to_cpu(ri.size); | 341 | i->i_size = be32_to_cpu(ri.size); |
342 | i->i_mtime.tv_sec = i->i_atime.tv_sec = i->i_ctime.tv_sec = 0; | 342 | i->i_mtime.tv_sec = i->i_atime.tv_sec = i->i_ctime.tv_sec = 0; |
343 | i->i_mtime.tv_nsec = i->i_atime.tv_nsec = i->i_ctime.tv_nsec = 0; | 343 | i->i_mtime.tv_nsec = i->i_atime.tv_nsec = i->i_ctime.tv_nsec = 0; |
diff --git a/fs/squashfs/inode.c b/fs/squashfs/inode.c index 04bebcaa2373..fd7b3b3bda13 100644 --- a/fs/squashfs/inode.c +++ b/fs/squashfs/inode.c | |||
@@ -159,7 +159,7 @@ int squashfs_read_inode(struct inode *inode, long long ino) | |||
159 | frag_offset = 0; | 159 | frag_offset = 0; |
160 | } | 160 | } |
161 | 161 | ||
162 | inode->i_nlink = 1; | 162 | set_nlink(inode, 1); |
163 | inode->i_size = le32_to_cpu(sqsh_ino->file_size); | 163 | inode->i_size = le32_to_cpu(sqsh_ino->file_size); |
164 | inode->i_fop = &generic_ro_fops; | 164 | inode->i_fop = &generic_ro_fops; |
165 | inode->i_mode |= S_IFREG; | 165 | inode->i_mode |= S_IFREG; |
@@ -203,7 +203,7 @@ int squashfs_read_inode(struct inode *inode, long long ino) | |||
203 | } | 203 | } |
204 | 204 | ||
205 | xattr_id = le32_to_cpu(sqsh_ino->xattr); | 205 | xattr_id = le32_to_cpu(sqsh_ino->xattr); |
206 | inode->i_nlink = le32_to_cpu(sqsh_ino->nlink); | 206 | set_nlink(inode, le32_to_cpu(sqsh_ino->nlink)); |
207 | inode->i_size = le64_to_cpu(sqsh_ino->file_size); | 207 | inode->i_size = le64_to_cpu(sqsh_ino->file_size); |
208 | inode->i_op = &squashfs_inode_ops; | 208 | inode->i_op = &squashfs_inode_ops; |
209 | inode->i_fop = &generic_ro_fops; | 209 | inode->i_fop = &generic_ro_fops; |
@@ -232,7 +232,7 @@ int squashfs_read_inode(struct inode *inode, long long ino) | |||
232 | if (err < 0) | 232 | if (err < 0) |
233 | goto failed_read; | 233 | goto failed_read; |
234 | 234 | ||
235 | inode->i_nlink = le32_to_cpu(sqsh_ino->nlink); | 235 | set_nlink(inode, le32_to_cpu(sqsh_ino->nlink)); |
236 | inode->i_size = le16_to_cpu(sqsh_ino->file_size); | 236 | inode->i_size = le16_to_cpu(sqsh_ino->file_size); |
237 | inode->i_op = &squashfs_dir_inode_ops; | 237 | inode->i_op = &squashfs_dir_inode_ops; |
238 | inode->i_fop = &squashfs_dir_ops; | 238 | inode->i_fop = &squashfs_dir_ops; |
@@ -257,7 +257,7 @@ int squashfs_read_inode(struct inode *inode, long long ino) | |||
257 | goto failed_read; | 257 | goto failed_read; |
258 | 258 | ||
259 | xattr_id = le32_to_cpu(sqsh_ino->xattr); | 259 | xattr_id = le32_to_cpu(sqsh_ino->xattr); |
260 | inode->i_nlink = le32_to_cpu(sqsh_ino->nlink); | 260 | set_nlink(inode, le32_to_cpu(sqsh_ino->nlink)); |
261 | inode->i_size = le32_to_cpu(sqsh_ino->file_size); | 261 | inode->i_size = le32_to_cpu(sqsh_ino->file_size); |
262 | inode->i_op = &squashfs_dir_inode_ops; | 262 | inode->i_op = &squashfs_dir_inode_ops; |
263 | inode->i_fop = &squashfs_dir_ops; | 263 | inode->i_fop = &squashfs_dir_ops; |
@@ -284,7 +284,7 @@ int squashfs_read_inode(struct inode *inode, long long ino) | |||
284 | if (err < 0) | 284 | if (err < 0) |
285 | goto failed_read; | 285 | goto failed_read; |
286 | 286 | ||
287 | inode->i_nlink = le32_to_cpu(sqsh_ino->nlink); | 287 | set_nlink(inode, le32_to_cpu(sqsh_ino->nlink)); |
288 | inode->i_size = le32_to_cpu(sqsh_ino->symlink_size); | 288 | inode->i_size = le32_to_cpu(sqsh_ino->symlink_size); |
289 | inode->i_op = &squashfs_symlink_inode_ops; | 289 | inode->i_op = &squashfs_symlink_inode_ops; |
290 | inode->i_data.a_ops = &squashfs_symlink_aops; | 290 | inode->i_data.a_ops = &squashfs_symlink_aops; |
@@ -325,7 +325,7 @@ int squashfs_read_inode(struct inode *inode, long long ino) | |||
325 | inode->i_mode |= S_IFCHR; | 325 | inode->i_mode |= S_IFCHR; |
326 | else | 326 | else |
327 | inode->i_mode |= S_IFBLK; | 327 | inode->i_mode |= S_IFBLK; |
328 | inode->i_nlink = le32_to_cpu(sqsh_ino->nlink); | 328 | set_nlink(inode, le32_to_cpu(sqsh_ino->nlink)); |
329 | rdev = le32_to_cpu(sqsh_ino->rdev); | 329 | rdev = le32_to_cpu(sqsh_ino->rdev); |
330 | init_special_inode(inode, inode->i_mode, new_decode_dev(rdev)); | 330 | init_special_inode(inode, inode->i_mode, new_decode_dev(rdev)); |
331 | 331 | ||
@@ -349,7 +349,7 @@ int squashfs_read_inode(struct inode *inode, long long ino) | |||
349 | inode->i_mode |= S_IFBLK; | 349 | inode->i_mode |= S_IFBLK; |
350 | xattr_id = le32_to_cpu(sqsh_ino->xattr); | 350 | xattr_id = le32_to_cpu(sqsh_ino->xattr); |
351 | inode->i_op = &squashfs_inode_ops; | 351 | inode->i_op = &squashfs_inode_ops; |
352 | inode->i_nlink = le32_to_cpu(sqsh_ino->nlink); | 352 | set_nlink(inode, le32_to_cpu(sqsh_ino->nlink)); |
353 | rdev = le32_to_cpu(sqsh_ino->rdev); | 353 | rdev = le32_to_cpu(sqsh_ino->rdev); |
354 | init_special_inode(inode, inode->i_mode, new_decode_dev(rdev)); | 354 | init_special_inode(inode, inode->i_mode, new_decode_dev(rdev)); |
355 | 355 | ||
@@ -370,7 +370,7 @@ int squashfs_read_inode(struct inode *inode, long long ino) | |||
370 | inode->i_mode |= S_IFIFO; | 370 | inode->i_mode |= S_IFIFO; |
371 | else | 371 | else |
372 | inode->i_mode |= S_IFSOCK; | 372 | inode->i_mode |= S_IFSOCK; |
373 | inode->i_nlink = le32_to_cpu(sqsh_ino->nlink); | 373 | set_nlink(inode, le32_to_cpu(sqsh_ino->nlink)); |
374 | init_special_inode(inode, inode->i_mode, 0); | 374 | init_special_inode(inode, inode->i_mode, 0); |
375 | break; | 375 | break; |
376 | } | 376 | } |
@@ -389,7 +389,7 @@ int squashfs_read_inode(struct inode *inode, long long ino) | |||
389 | inode->i_mode |= S_IFSOCK; | 389 | inode->i_mode |= S_IFSOCK; |
390 | xattr_id = le32_to_cpu(sqsh_ino->xattr); | 390 | xattr_id = le32_to_cpu(sqsh_ino->xattr); |
391 | inode->i_op = &squashfs_inode_ops; | 391 | inode->i_op = &squashfs_inode_ops; |
392 | inode->i_nlink = le32_to_cpu(sqsh_ino->nlink); | 392 | set_nlink(inode, le32_to_cpu(sqsh_ino->nlink)); |
393 | init_special_inode(inode, inode->i_mode, 0); | 393 | init_special_inode(inode, inode->i_mode, 0); |
394 | break; | 394 | break; |
395 | } | 395 | } |
diff --git a/fs/stack.c b/fs/stack.c index b4f2ab48a61f..9c11519245a6 100644 --- a/fs/stack.c +++ b/fs/stack.c | |||
@@ -71,6 +71,6 @@ void fsstack_copy_attr_all(struct inode *dest, const struct inode *src) | |||
71 | dest->i_ctime = src->i_ctime; | 71 | dest->i_ctime = src->i_ctime; |
72 | dest->i_blkbits = src->i_blkbits; | 72 | dest->i_blkbits = src->i_blkbits; |
73 | dest->i_flags = src->i_flags; | 73 | dest->i_flags = src->i_flags; |
74 | dest->i_nlink = src->i_nlink; | 74 | set_nlink(dest, src->i_nlink); |
75 | } | 75 | } |
76 | EXPORT_SYMBOL_GPL(fsstack_copy_attr_all); | 76 | EXPORT_SYMBOL_GPL(fsstack_copy_attr_all); |
diff --git a/fs/sysfs/inode.c b/fs/sysfs/inode.c index e23f28894a3a..c81b22f3ace1 100644 --- a/fs/sysfs/inode.c +++ b/fs/sysfs/inode.c | |||
@@ -218,7 +218,7 @@ static void sysfs_refresh_inode(struct sysfs_dirent *sd, struct inode *inode) | |||
218 | } | 218 | } |
219 | 219 | ||
220 | if (sysfs_type(sd) == SYSFS_DIR) | 220 | if (sysfs_type(sd) == SYSFS_DIR) |
221 | inode->i_nlink = sd->s_dir.subdirs + 2; | 221 | set_nlink(inode, sd->s_dir.subdirs + 2); |
222 | } | 222 | } |
223 | 223 | ||
224 | int sysfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat) | 224 | int sysfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat) |
diff --git a/fs/sysv/inode.c b/fs/sysv/inode.c index 0630eb969a28..25ffb3e9a3f8 100644 --- a/fs/sysv/inode.c +++ b/fs/sysv/inode.c | |||
@@ -219,7 +219,7 @@ struct inode *sysv_iget(struct super_block *sb, unsigned int ino) | |||
219 | inode->i_mode = fs16_to_cpu(sbi, raw_inode->i_mode); | 219 | inode->i_mode = fs16_to_cpu(sbi, raw_inode->i_mode); |
220 | inode->i_uid = (uid_t)fs16_to_cpu(sbi, raw_inode->i_uid); | 220 | inode->i_uid = (uid_t)fs16_to_cpu(sbi, raw_inode->i_uid); |
221 | inode->i_gid = (gid_t)fs16_to_cpu(sbi, raw_inode->i_gid); | 221 | inode->i_gid = (gid_t)fs16_to_cpu(sbi, raw_inode->i_gid); |
222 | inode->i_nlink = fs16_to_cpu(sbi, raw_inode->i_nlink); | 222 | set_nlink(inode, fs16_to_cpu(sbi, raw_inode->i_nlink)); |
223 | inode->i_size = fs32_to_cpu(sbi, raw_inode->i_size); | 223 | inode->i_size = fs32_to_cpu(sbi, raw_inode->i_size); |
224 | inode->i_atime.tv_sec = fs32_to_cpu(sbi, raw_inode->i_atime); | 224 | inode->i_atime.tv_sec = fs32_to_cpu(sbi, raw_inode->i_atime); |
225 | inode->i_mtime.tv_sec = fs32_to_cpu(sbi, raw_inode->i_mtime); | 225 | inode->i_mtime.tv_sec = fs32_to_cpu(sbi, raw_inode->i_mtime); |
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c index b28121278d46..20403dc5d437 100644 --- a/fs/ubifs/super.c +++ b/fs/ubifs/super.c | |||
@@ -129,7 +129,7 @@ struct inode *ubifs_iget(struct super_block *sb, unsigned long inum) | |||
129 | goto out_ino; | 129 | goto out_ino; |
130 | 130 | ||
131 | inode->i_flags |= (S_NOCMTIME | S_NOATIME); | 131 | inode->i_flags |= (S_NOCMTIME | S_NOATIME); |
132 | inode->i_nlink = le32_to_cpu(ino->nlink); | 132 | set_nlink(inode, le32_to_cpu(ino->nlink)); |
133 | inode->i_uid = le32_to_cpu(ino->uid); | 133 | inode->i_uid = le32_to_cpu(ino->uid); |
134 | inode->i_gid = le32_to_cpu(ino->gid); | 134 | inode->i_gid = le32_to_cpu(ino->gid); |
135 | inode->i_atime.tv_sec = (int64_t)le64_to_cpu(ino->atime_sec); | 135 | inode->i_atime.tv_sec = (int64_t)le64_to_cpu(ino->atime_sec); |
diff --git a/fs/ubifs/xattr.c b/fs/ubifs/xattr.c index 993adc8f1c87..bf18f7a04544 100644 --- a/fs/ubifs/xattr.c +++ b/fs/ubifs/xattr.c | |||
@@ -561,7 +561,7 @@ int ubifs_removexattr(struct dentry *dentry, const char *name) | |||
561 | clear_nlink(inode); | 561 | clear_nlink(inode); |
562 | err = remove_xattr(c, host, inode, &nm); | 562 | err = remove_xattr(c, host, inode, &nm); |
563 | if (err) | 563 | if (err) |
564 | inode->i_nlink = 1; | 564 | set_nlink(inode, 1); |
565 | 565 | ||
566 | /* If @i_nlink is 0, 'iput()' will delete the inode */ | 566 | /* If @i_nlink is 0, 'iput()' will delete the inode */ |
567 | iput(inode); | 567 | iput(inode); |
diff --git a/fs/udf/inode.c b/fs/udf/inode.c index 1d1358ed80c1..6e73f1d6e93c 100644 --- a/fs/udf/inode.c +++ b/fs/udf/inode.c | |||
@@ -1236,6 +1236,7 @@ static void udf_fill_inode(struct inode *inode, struct buffer_head *bh) | |||
1236 | int offset; | 1236 | int offset; |
1237 | struct udf_sb_info *sbi = UDF_SB(inode->i_sb); | 1237 | struct udf_sb_info *sbi = UDF_SB(inode->i_sb); |
1238 | struct udf_inode_info *iinfo = UDF_I(inode); | 1238 | struct udf_inode_info *iinfo = UDF_I(inode); |
1239 | unsigned int link_count; | ||
1239 | 1240 | ||
1240 | fe = (struct fileEntry *)bh->b_data; | 1241 | fe = (struct fileEntry *)bh->b_data; |
1241 | efe = (struct extendedFileEntry *)bh->b_data; | 1242 | efe = (struct extendedFileEntry *)bh->b_data; |
@@ -1318,9 +1319,10 @@ static void udf_fill_inode(struct inode *inode, struct buffer_head *bh) | |||
1318 | inode->i_mode &= ~sbi->s_umask; | 1319 | inode->i_mode &= ~sbi->s_umask; |
1319 | read_unlock(&sbi->s_cred_lock); | 1320 | read_unlock(&sbi->s_cred_lock); |
1320 | 1321 | ||
1321 | inode->i_nlink = le16_to_cpu(fe->fileLinkCount); | 1322 | link_count = le16_to_cpu(fe->fileLinkCount); |
1322 | if (!inode->i_nlink) | 1323 | if (!link_count) |
1323 | inode->i_nlink = 1; | 1324 | link_count = 1; |
1325 | set_nlink(inode, link_count); | ||
1324 | 1326 | ||
1325 | inode->i_size = le64_to_cpu(fe->informationLength); | 1327 | inode->i_size = le64_to_cpu(fe->informationLength); |
1326 | iinfo->i_lenExtents = inode->i_size; | 1328 | iinfo->i_lenExtents = inode->i_size; |
diff --git a/fs/udf/namei.c b/fs/udf/namei.c index e8d61b114c1b..f1c64c6a4532 100644 --- a/fs/udf/namei.c +++ b/fs/udf/namei.c | |||
@@ -667,7 +667,7 @@ static int udf_mkdir(struct inode *dir, struct dentry *dentry, int mode) | |||
667 | iput(inode); | 667 | iput(inode); |
668 | goto out; | 668 | goto out; |
669 | } | 669 | } |
670 | inode->i_nlink = 2; | 670 | set_nlink(inode, 2); |
671 | cfi.icb.extLength = cpu_to_le32(inode->i_sb->s_blocksize); | 671 | cfi.icb.extLength = cpu_to_le32(inode->i_sb->s_blocksize); |
672 | cfi.icb.extLocation = cpu_to_lelb(dinfo->i_location); | 672 | cfi.icb.extLocation = cpu_to_lelb(dinfo->i_location); |
673 | *(__le32 *)((struct allocDescImpUse *)cfi.icb.impUse)->impUse = | 673 | *(__le32 *)((struct allocDescImpUse *)cfi.icb.impUse)->impUse = |
@@ -837,7 +837,7 @@ static int udf_unlink(struct inode *dir, struct dentry *dentry) | |||
837 | if (!inode->i_nlink) { | 837 | if (!inode->i_nlink) { |
838 | udf_debug("Deleting nonexistent file (%lu), %d\n", | 838 | udf_debug("Deleting nonexistent file (%lu), %d\n", |
839 | inode->i_ino, inode->i_nlink); | 839 | inode->i_ino, inode->i_nlink); |
840 | inode->i_nlink = 1; | 840 | set_nlink(inode, 1); |
841 | } | 841 | } |
842 | retval = udf_delete_entry(dir, fi, &fibh, &cfi); | 842 | retval = udf_delete_entry(dir, fi, &fibh, &cfi); |
843 | if (retval) | 843 | if (retval) |
diff --git a/fs/ufs/inode.c b/fs/ufs/inode.c index b4d791a83207..879b13436fa4 100644 --- a/fs/ufs/inode.c +++ b/fs/ufs/inode.c | |||
@@ -589,7 +589,7 @@ static int ufs1_read_inode(struct inode *inode, struct ufs_inode *ufs_inode) | |||
589 | * Copy data to the in-core inode. | 589 | * Copy data to the in-core inode. |
590 | */ | 590 | */ |
591 | inode->i_mode = mode = fs16_to_cpu(sb, ufs_inode->ui_mode); | 591 | inode->i_mode = mode = fs16_to_cpu(sb, ufs_inode->ui_mode); |
592 | inode->i_nlink = fs16_to_cpu(sb, ufs_inode->ui_nlink); | 592 | set_nlink(inode, fs16_to_cpu(sb, ufs_inode->ui_nlink)); |
593 | if (inode->i_nlink == 0) { | 593 | if (inode->i_nlink == 0) { |
594 | ufs_error (sb, "ufs_read_inode", "inode %lu has zero nlink\n", inode->i_ino); | 594 | ufs_error (sb, "ufs_read_inode", "inode %lu has zero nlink\n", inode->i_ino); |
595 | return -1; | 595 | return -1; |
@@ -637,7 +637,7 @@ static int ufs2_read_inode(struct inode *inode, struct ufs2_inode *ufs2_inode) | |||
637 | * Copy data to the in-core inode. | 637 | * Copy data to the in-core inode. |
638 | */ | 638 | */ |
639 | inode->i_mode = mode = fs16_to_cpu(sb, ufs2_inode->ui_mode); | 639 | inode->i_mode = mode = fs16_to_cpu(sb, ufs2_inode->ui_mode); |
640 | inode->i_nlink = fs16_to_cpu(sb, ufs2_inode->ui_nlink); | 640 | set_nlink(inode, fs16_to_cpu(sb, ufs2_inode->ui_nlink)); |
641 | if (inode->i_nlink == 0) { | 641 | if (inode->i_nlink == 0) { |
642 | ufs_error (sb, "ufs_read_inode", "inode %lu has zero nlink\n", inode->i_ino); | 642 | ufs_error (sb, "ufs_read_inode", "inode %lu has zero nlink\n", inode->i_ino); |
643 | return -1; | 643 | return -1; |
diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c index 9ba2a07b7343..23ce927973a4 100644 --- a/fs/xfs/xfs_iops.c +++ b/fs/xfs/xfs_iops.c | |||
@@ -1153,7 +1153,7 @@ xfs_setup_inode( | |||
1153 | hlist_add_fake(&inode->i_hash); | 1153 | hlist_add_fake(&inode->i_hash); |
1154 | 1154 | ||
1155 | inode->i_mode = ip->i_d.di_mode; | 1155 | inode->i_mode = ip->i_d.di_mode; |
1156 | inode->i_nlink = ip->i_d.di_nlink; | 1156 | set_nlink(inode, ip->i_d.di_nlink); |
1157 | inode->i_uid = ip->i_d.di_uid; | 1157 | inode->i_uid = ip->i_d.di_uid; |
1158 | inode->i_gid = ip->i_d.di_gid; | 1158 | inode->i_gid = ip->i_d.di_gid; |
1159 | 1159 | ||
diff --git a/include/linux/fs.h b/include/linux/fs.h index 7a049fd2aa4c..48c1f5fc7411 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -1755,6 +1755,19 @@ static inline void mark_inode_dirty_sync(struct inode *inode) | |||
1755 | } | 1755 | } |
1756 | 1756 | ||
1757 | /** | 1757 | /** |
1758 | * set_nlink - directly set an inode's link count | ||
1759 | * @inode: inode | ||
1760 | * @nlink: new nlink (should be non-zero) | ||
1761 | * | ||
1762 | * This is a low-level filesystem helper to replace any | ||
1763 | * direct filesystem manipulation of i_nlink. | ||
1764 | */ | ||
1765 | static inline void set_nlink(struct inode *inode, unsigned int nlink) | ||
1766 | { | ||
1767 | inode->i_nlink = nlink; | ||
1768 | } | ||
1769 | |||
1770 | /** | ||
1758 | * inc_nlink - directly increment an inode's link count | 1771 | * inc_nlink - directly increment an inode's link count |
1759 | * @inode: inode | 1772 | * @inode: inode |
1760 | * | 1773 | * |