You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
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>
This commit is contained in:
committed by
Christoph Hellwig
parent
6d6b77f163
commit
bfe8684869
@@ -108,7 +108,7 @@ static struct inode *hypfs_make_inode(struct super_block *sb, int mode)
|
|||||||
ret->i_gid = hypfs_info->gid;
|
ret->i_gid = hypfs_info->gid;
|
||||||
ret->i_atime = ret->i_mtime = ret->i_ctime = CURRENT_TIME;
|
ret->i_atime = ret->i_mtime = ret->i_ctime = CURRENT_TIME;
|
||||||
if (mode & S_IFDIR)
|
if (mode & S_IFDIR)
|
||||||
ret->i_nlink = 2;
|
set_nlink(ret, 2);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1197,7 +1197,7 @@ const struct inode_operations pohmelfs_file_inode_operations = {
|
|||||||
void pohmelfs_fill_inode(struct inode *inode, struct netfs_inode_info *info)
|
void pohmelfs_fill_inode(struct inode *inode, struct netfs_inode_info *info)
|
||||||
{
|
{
|
||||||
inode->i_mode = info->mode;
|
inode->i_mode = info->mode;
|
||||||
inode->i_nlink = info->nlink;
|
set_nlink(inode, info->nlink);
|
||||||
inode->i_uid = info->uid;
|
inode->i_uid = info->uid;
|
||||||
inode->i_gid = info->gid;
|
inode->i_gid = info->gid;
|
||||||
inode->i_blocks = info->blocks;
|
inode->i_blocks = info->blocks;
|
||||||
|
|||||||
+2
-2
@@ -1138,7 +1138,7 @@ v9fs_stat2inode(struct p9_wstat *stat, struct inode *inode,
|
|||||||
struct v9fs_session_info *v9ses = sb->s_fs_info;
|
struct v9fs_session_info *v9ses = sb->s_fs_info;
|
||||||
struct v9fs_inode *v9inode = V9FS_I(inode);
|
struct v9fs_inode *v9inode = V9FS_I(inode);
|
||||||
|
|
||||||
inode->i_nlink = 1;
|
set_nlink(inode, 1);
|
||||||
|
|
||||||
inode->i_atime.tv_sec = stat->atime;
|
inode->i_atime.tv_sec = stat->atime;
|
||||||
inode->i_mtime.tv_sec = stat->mtime;
|
inode->i_mtime.tv_sec = stat->mtime;
|
||||||
@@ -1164,7 +1164,7 @@ v9fs_stat2inode(struct p9_wstat *stat, struct inode *inode,
|
|||||||
/* HARDLINKCOUNT %u */
|
/* HARDLINKCOUNT %u */
|
||||||
sscanf(ext, "%13s %u", tag_name, &i_nlink);
|
sscanf(ext, "%13s %u", tag_name, &i_nlink);
|
||||||
if (!strncmp(tag_name, "HARDLINKCOUNT", 13))
|
if (!strncmp(tag_name, "HARDLINKCOUNT", 13))
|
||||||
inode->i_nlink = i_nlink;
|
set_nlink(inode, i_nlink);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mode = stat->mode & S_IALLUGO;
|
mode = stat->mode & S_IALLUGO;
|
||||||
|
|||||||
@@ -606,7 +606,7 @@ v9fs_stat2inode_dotl(struct p9_stat_dotl *stat, struct inode *inode)
|
|||||||
inode->i_ctime.tv_nsec = stat->st_ctime_nsec;
|
inode->i_ctime.tv_nsec = stat->st_ctime_nsec;
|
||||||
inode->i_uid = stat->st_uid;
|
inode->i_uid = stat->st_uid;
|
||||||
inode->i_gid = stat->st_gid;
|
inode->i_gid = stat->st_gid;
|
||||||
inode->i_nlink = stat->st_nlink;
|
set_nlink(inode, stat->st_nlink);
|
||||||
|
|
||||||
mode = stat->st_mode & S_IALLUGO;
|
mode = stat->st_mode & S_IALLUGO;
|
||||||
mode |= inode->i_mode & ~S_IALLUGO;
|
mode |= inode->i_mode & ~S_IALLUGO;
|
||||||
@@ -632,7 +632,7 @@ v9fs_stat2inode_dotl(struct p9_stat_dotl *stat, struct inode *inode)
|
|||||||
if (stat->st_result_mask & P9_STATS_GID)
|
if (stat->st_result_mask & P9_STATS_GID)
|
||||||
inode->i_gid = stat->st_gid;
|
inode->i_gid = stat->st_gid;
|
||||||
if (stat->st_result_mask & P9_STATS_NLINK)
|
if (stat->st_result_mask & P9_STATS_NLINK)
|
||||||
inode->i_nlink = stat->st_nlink;
|
set_nlink(inode, stat->st_nlink);
|
||||||
if (stat->st_result_mask & P9_STATS_MODE) {
|
if (stat->st_result_mask & P9_STATS_MODE) {
|
||||||
inode->i_mode = stat->st_mode;
|
inode->i_mode = stat->st_mode;
|
||||||
if ((S_ISBLK(inode->i_mode)) ||
|
if ((S_ISBLK(inode->i_mode)) ||
|
||||||
|
|||||||
+1
-1
@@ -247,7 +247,7 @@ adfs_iget(struct super_block *sb, struct object_info *obj)
|
|||||||
inode->i_gid = ADFS_SB(sb)->s_gid;
|
inode->i_gid = ADFS_SB(sb)->s_gid;
|
||||||
inode->i_ino = obj->file_id;
|
inode->i_ino = obj->file_id;
|
||||||
inode->i_size = obj->size;
|
inode->i_size = obj->size;
|
||||||
inode->i_nlink = 2;
|
set_nlink(inode, 2);
|
||||||
inode->i_blocks = (inode->i_size + sb->s_blocksize - 1) >>
|
inode->i_blocks = (inode->i_size + sb->s_blocksize - 1) >>
|
||||||
sb->s_blocksize_bits;
|
sb->s_blocksize_bits;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -215,7 +215,7 @@ affs_remove_link(struct dentry *dentry)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (!AFFS_TAIL(sb, bh)->link_chain)
|
if (!AFFS_TAIL(sb, bh)->link_chain)
|
||||||
inode->i_nlink = 1;
|
set_nlink(inode, 1);
|
||||||
}
|
}
|
||||||
affs_free_block(sb, link_ino);
|
affs_free_block(sb, link_ino);
|
||||||
goto done;
|
goto done;
|
||||||
|
|||||||
+4
-4
@@ -54,7 +54,7 @@ struct inode *affs_iget(struct super_block *sb, unsigned long ino)
|
|||||||
prot = be32_to_cpu(tail->protect);
|
prot = be32_to_cpu(tail->protect);
|
||||||
|
|
||||||
inode->i_size = 0;
|
inode->i_size = 0;
|
||||||
inode->i_nlink = 1;
|
set_nlink(inode, 1);
|
||||||
inode->i_mode = 0;
|
inode->i_mode = 0;
|
||||||
AFFS_I(inode)->i_extcnt = 1;
|
AFFS_I(inode)->i_extcnt = 1;
|
||||||
AFFS_I(inode)->i_ext_last = ~1;
|
AFFS_I(inode)->i_ext_last = ~1;
|
||||||
@@ -137,7 +137,7 @@ struct inode *affs_iget(struct super_block *sb, unsigned long ino)
|
|||||||
sbi->s_hashsize + 1;
|
sbi->s_hashsize + 1;
|
||||||
}
|
}
|
||||||
if (tail->link_chain)
|
if (tail->link_chain)
|
||||||
inode->i_nlink = 2;
|
set_nlink(inode, 2);
|
||||||
inode->i_mapping->a_ops = (sbi->s_flags & SF_OFS) ? &affs_aops_ofs : &affs_aops;
|
inode->i_mapping->a_ops = (sbi->s_flags & SF_OFS) ? &affs_aops_ofs : &affs_aops;
|
||||||
inode->i_op = &affs_file_inode_operations;
|
inode->i_op = &affs_file_inode_operations;
|
||||||
inode->i_fop = &affs_file_operations;
|
inode->i_fop = &affs_file_operations;
|
||||||
@@ -304,7 +304,7 @@ affs_new_inode(struct inode *dir)
|
|||||||
inode->i_uid = current_fsuid();
|
inode->i_uid = current_fsuid();
|
||||||
inode->i_gid = current_fsgid();
|
inode->i_gid = current_fsgid();
|
||||||
inode->i_ino = block;
|
inode->i_ino = block;
|
||||||
inode->i_nlink = 1;
|
set_nlink(inode, 1);
|
||||||
inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC;
|
inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC;
|
||||||
atomic_set(&AFFS_I(inode)->i_opencnt, 0);
|
atomic_set(&AFFS_I(inode)->i_opencnt, 0);
|
||||||
AFFS_I(inode)->i_blkcnt = 0;
|
AFFS_I(inode)->i_blkcnt = 0;
|
||||||
@@ -387,7 +387,7 @@ affs_add_entry(struct inode *dir, struct inode *inode, struct dentry *dentry, s3
|
|||||||
AFFS_TAIL(sb, inode_bh)->link_chain = cpu_to_be32(block);
|
AFFS_TAIL(sb, inode_bh)->link_chain = cpu_to_be32(block);
|
||||||
affs_adjust_checksum(inode_bh, block - be32_to_cpu(chain));
|
affs_adjust_checksum(inode_bh, block - be32_to_cpu(chain));
|
||||||
mark_buffer_dirty_inode(inode_bh, inode);
|
mark_buffer_dirty_inode(inode_bh, inode);
|
||||||
inode->i_nlink = 2;
|
set_nlink(inode, 2);
|
||||||
ihold(inode);
|
ihold(inode);
|
||||||
}
|
}
|
||||||
affs_fix_checksum(sb, bh);
|
affs_fix_checksum(sb, bh);
|
||||||
|
|||||||
+1
-1
@@ -90,7 +90,7 @@ static void xdr_decode_AFSFetchStatus(const __be32 **_bp,
|
|||||||
vnode->vfs_inode.i_uid = status->owner;
|
vnode->vfs_inode.i_uid = status->owner;
|
||||||
vnode->vfs_inode.i_gid = status->group;
|
vnode->vfs_inode.i_gid = status->group;
|
||||||
vnode->vfs_inode.i_generation = vnode->fid.unique;
|
vnode->vfs_inode.i_generation = vnode->fid.unique;
|
||||||
vnode->vfs_inode.i_nlink = status->nlink;
|
set_nlink(&vnode->vfs_inode, status->nlink);
|
||||||
|
|
||||||
mode = vnode->vfs_inode.i_mode;
|
mode = vnode->vfs_inode.i_mode;
|
||||||
mode &= ~S_IALLUGO;
|
mode &= ~S_IALLUGO;
|
||||||
|
|||||||
+2
-2
@@ -67,7 +67,7 @@ static int afs_inode_map_status(struct afs_vnode *vnode, struct key *key)
|
|||||||
fscache_attr_changed(vnode->cache);
|
fscache_attr_changed(vnode->cache);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
inode->i_nlink = vnode->status.nlink;
|
set_nlink(inode, vnode->status.nlink);
|
||||||
inode->i_uid = vnode->status.owner;
|
inode->i_uid = vnode->status.owner;
|
||||||
inode->i_gid = 0;
|
inode->i_gid = 0;
|
||||||
inode->i_size = vnode->status.size;
|
inode->i_size = vnode->status.size;
|
||||||
@@ -174,7 +174,7 @@ struct inode *afs_iget_autocell(struct inode *dir, const char *dev_name,
|
|||||||
inode->i_size = 0;
|
inode->i_size = 0;
|
||||||
inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO;
|
inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO;
|
||||||
inode->i_op = &afs_autocell_inode_operations;
|
inode->i_op = &afs_autocell_inode_operations;
|
||||||
inode->i_nlink = 2;
|
set_nlink(inode, 2);
|
||||||
inode->i_uid = 0;
|
inode->i_uid = 0;
|
||||||
inode->i_gid = 0;
|
inode->i_gid = 0;
|
||||||
inode->i_ctime.tv_sec = get_seconds();
|
inode->i_ctime.tv_sec = get_seconds();
|
||||||
|
|||||||
+1
-1
@@ -342,7 +342,7 @@ struct inode *autofs4_get_inode(struct super_block *sb, mode_t mode)
|
|||||||
inode->i_ino = get_next_ino();
|
inode->i_ino = get_next_ino();
|
||||||
|
|
||||||
if (S_ISDIR(mode)) {
|
if (S_ISDIR(mode)) {
|
||||||
inode->i_nlink = 2;
|
set_nlink(inode, 2);
|
||||||
inode->i_op = &autofs4_dir_inode_operations;
|
inode->i_op = &autofs4_dir_inode_operations;
|
||||||
inode->i_fop = &autofs4_dir_operations;
|
inode->i_fop = &autofs4_dir_operations;
|
||||||
} else if (S_ISLNK(mode)) {
|
} else if (S_ISLNK(mode)) {
|
||||||
|
|||||||
+1
-1
@@ -357,7 +357,7 @@ static struct inode *befs_iget(struct super_block *sb, unsigned long ino)
|
|||||||
inode->i_gid = befs_sb->mount_opts.use_gid ?
|
inode->i_gid = befs_sb->mount_opts.use_gid ?
|
||||||
befs_sb->mount_opts.gid : (gid_t) fs32_to_cpu(sb, raw_inode->gid);
|
befs_sb->mount_opts.gid : (gid_t) fs32_to_cpu(sb, raw_inode->gid);
|
||||||
|
|
||||||
inode->i_nlink = 1;
|
set_nlink(inode, 1);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* BEFS's time is 64 bits, but current VFS is 32 bits...
|
* BEFS's time is 64 bits, but current VFS is 32 bits...
|
||||||
|
|||||||
+1
-1
@@ -199,7 +199,7 @@ static int bfs_unlink(struct inode *dir, struct dentry *dentry)
|
|||||||
printf("unlinking non-existent file %s:%lu (nlink=%d)\n",
|
printf("unlinking non-existent file %s:%lu (nlink=%d)\n",
|
||||||
inode->i_sb->s_id, inode->i_ino,
|
inode->i_sb->s_id, inode->i_ino,
|
||||||
inode->i_nlink);
|
inode->i_nlink);
|
||||||
inode->i_nlink = 1;
|
set_nlink(inode, 1);
|
||||||
}
|
}
|
||||||
de->ino = 0;
|
de->ino = 0;
|
||||||
mark_buffer_dirty_inode(bh, dir);
|
mark_buffer_dirty_inode(bh, dir);
|
||||||
|
|||||||
+1
-1
@@ -78,7 +78,7 @@ struct inode *bfs_iget(struct super_block *sb, unsigned long ino)
|
|||||||
BFS_I(inode)->i_dsk_ino = le16_to_cpu(di->i_ino);
|
BFS_I(inode)->i_dsk_ino = le16_to_cpu(di->i_ino);
|
||||||
inode->i_uid = le32_to_cpu(di->i_uid);
|
inode->i_uid = le32_to_cpu(di->i_uid);
|
||||||
inode->i_gid = le32_to_cpu(di->i_gid);
|
inode->i_gid = le32_to_cpu(di->i_gid);
|
||||||
inode->i_nlink = le32_to_cpu(di->i_nlink);
|
set_nlink(inode, le32_to_cpu(di->i_nlink));
|
||||||
inode->i_size = BFS_FILESIZE(di);
|
inode->i_size = BFS_FILESIZE(di);
|
||||||
inode->i_blocks = BFS_FILEBLOCKS(di);
|
inode->i_blocks = BFS_FILEBLOCKS(di);
|
||||||
inode->i_atime.tv_sec = le32_to_cpu(di->i_atime);
|
inode->i_atime.tv_sec = le32_to_cpu(di->i_atime);
|
||||||
|
|||||||
@@ -1641,7 +1641,7 @@ int btrfs_fill_inode(struct inode *inode, u32 *rdev)
|
|||||||
inode->i_gid = btrfs_stack_inode_gid(inode_item);
|
inode->i_gid = btrfs_stack_inode_gid(inode_item);
|
||||||
btrfs_i_size_write(inode, btrfs_stack_inode_size(inode_item));
|
btrfs_i_size_write(inode, btrfs_stack_inode_size(inode_item));
|
||||||
inode->i_mode = btrfs_stack_inode_mode(inode_item);
|
inode->i_mode = btrfs_stack_inode_mode(inode_item);
|
||||||
inode->i_nlink = btrfs_stack_inode_nlink(inode_item);
|
set_nlink(inode, btrfs_stack_inode_nlink(inode_item));
|
||||||
inode_set_bytes(inode, btrfs_stack_inode_nbytes(inode_item));
|
inode_set_bytes(inode, btrfs_stack_inode_nbytes(inode_item));
|
||||||
BTRFS_I(inode)->generation = btrfs_stack_inode_generation(inode_item);
|
BTRFS_I(inode)->generation = btrfs_stack_inode_generation(inode_item);
|
||||||
BTRFS_I(inode)->sequence = btrfs_stack_inode_sequence(inode_item);
|
BTRFS_I(inode)->sequence = btrfs_stack_inode_sequence(inode_item);
|
||||||
|
|||||||
+1
-1
@@ -1705,7 +1705,7 @@ struct btrfs_root *open_ctree(struct super_block *sb,
|
|||||||
sb->s_bdi = &fs_info->bdi;
|
sb->s_bdi = &fs_info->bdi;
|
||||||
|
|
||||||
fs_info->btree_inode->i_ino = BTRFS_BTREE_INODE_OBJECTID;
|
fs_info->btree_inode->i_ino = BTRFS_BTREE_INODE_OBJECTID;
|
||||||
fs_info->btree_inode->i_nlink = 1;
|
set_nlink(fs_info->btree_inode, 1);
|
||||||
/*
|
/*
|
||||||
* we set the i_size on the btree inode to the max possible int.
|
* we set the i_size on the btree inode to the max possible int.
|
||||||
* the real end of the address space is determined by all of
|
* the real end of the address space is determined by all of
|
||||||
|
|||||||
+2
-2
@@ -2534,7 +2534,7 @@ static void btrfs_read_locked_inode(struct inode *inode)
|
|||||||
inode_item = btrfs_item_ptr(leaf, path->slots[0],
|
inode_item = btrfs_item_ptr(leaf, path->slots[0],
|
||||||
struct btrfs_inode_item);
|
struct btrfs_inode_item);
|
||||||
inode->i_mode = btrfs_inode_mode(leaf, inode_item);
|
inode->i_mode = btrfs_inode_mode(leaf, inode_item);
|
||||||
inode->i_nlink = btrfs_inode_nlink(leaf, inode_item);
|
set_nlink(inode, btrfs_inode_nlink(leaf, inode_item));
|
||||||
inode->i_uid = btrfs_inode_uid(leaf, inode_item);
|
inode->i_uid = btrfs_inode_uid(leaf, inode_item);
|
||||||
inode->i_gid = btrfs_inode_gid(leaf, inode_item);
|
inode->i_gid = btrfs_inode_gid(leaf, inode_item);
|
||||||
btrfs_i_size_write(inode, btrfs_inode_size(leaf, inode_item));
|
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,
|
|||||||
inode->i_op = &btrfs_dir_inode_operations;
|
inode->i_op = &btrfs_dir_inode_operations;
|
||||||
inode->i_fop = &btrfs_dir_file_operations;
|
inode->i_fop = &btrfs_dir_file_operations;
|
||||||
|
|
||||||
inode->i_nlink = 1;
|
set_nlink(inode, 1);
|
||||||
btrfs_i_size_write(inode, 0);
|
btrfs_i_size_write(inode, 0);
|
||||||
|
|
||||||
err = btrfs_update_inode(trans, new_root, inode);
|
err = btrfs_update_inode(trans, new_root, inode);
|
||||||
|
|||||||
+1
-1
@@ -1030,7 +1030,7 @@ static noinline int fixup_inode_link_count(struct btrfs_trans_handle *trans,
|
|||||||
}
|
}
|
||||||
btrfs_release_path(path);
|
btrfs_release_path(path);
|
||||||
if (nlink != inode->i_nlink) {
|
if (nlink != inode->i_nlink) {
|
||||||
inode->i_nlink = nlink;
|
set_nlink(inode, nlink);
|
||||||
btrfs_update_inode(trans, root, inode);
|
btrfs_update_inode(trans, root, inode);
|
||||||
}
|
}
|
||||||
BTRFS_I(inode)->index_cnt = (u64)-1;
|
BTRFS_I(inode)->index_cnt = (u64)-1;
|
||||||
|
|||||||
+1
-1
@@ -2363,7 +2363,7 @@ static void handle_cap_grant(struct inode *inode, struct ceph_mds_caps *grant,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((issued & CEPH_CAP_LINK_EXCL) == 0)
|
if ((issued & CEPH_CAP_LINK_EXCL) == 0)
|
||||||
inode->i_nlink = le32_to_cpu(grant->nlink);
|
set_nlink(inode, le32_to_cpu(grant->nlink));
|
||||||
|
|
||||||
if ((issued & CEPH_CAP_XATTR_EXCL) == 0 && grant->xattr_len) {
|
if ((issued & CEPH_CAP_XATTR_EXCL) == 0 && grant->xattr_len) {
|
||||||
int len = le32_to_cpu(grant->xattr_len);
|
int len = le32_to_cpu(grant->xattr_len);
|
||||||
|
|||||||
+1
-1
@@ -618,7 +618,7 @@ static int fill_inode(struct inode *inode,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((issued & CEPH_CAP_LINK_EXCL) == 0)
|
if ((issued & CEPH_CAP_LINK_EXCL) == 0)
|
||||||
inode->i_nlink = le32_to_cpu(info->nlink);
|
set_nlink(inode, le32_to_cpu(info->nlink));
|
||||||
|
|
||||||
/* be careful with mtime, atime, size */
|
/* be careful with mtime, atime, size */
|
||||||
ceph_decode_timespec(&atime, &info->atime);
|
ceph_decode_timespec(&atime, &info->atime);
|
||||||
|
|||||||
+3
-3
@@ -132,7 +132,7 @@ cifs_fattr_to_inode(struct inode *inode, struct cifs_fattr *fattr)
|
|||||||
inode->i_mtime = fattr->cf_mtime;
|
inode->i_mtime = fattr->cf_mtime;
|
||||||
inode->i_ctime = fattr->cf_ctime;
|
inode->i_ctime = fattr->cf_ctime;
|
||||||
inode->i_rdev = fattr->cf_rdev;
|
inode->i_rdev = fattr->cf_rdev;
|
||||||
inode->i_nlink = fattr->cf_nlink;
|
set_nlink(inode, fattr->cf_nlink);
|
||||||
inode->i_uid = fattr->cf_uid;
|
inode->i_uid = fattr->cf_uid;
|
||||||
inode->i_gid = fattr->cf_gid;
|
inode->i_gid = fattr->cf_gid;
|
||||||
|
|
||||||
@@ -905,7 +905,7 @@ struct inode *cifs_root_iget(struct super_block *sb)
|
|||||||
if (rc && tcon->ipc) {
|
if (rc && tcon->ipc) {
|
||||||
cFYI(1, "ipc connection - fake read inode");
|
cFYI(1, "ipc connection - fake read inode");
|
||||||
inode->i_mode |= S_IFDIR;
|
inode->i_mode |= S_IFDIR;
|
||||||
inode->i_nlink = 2;
|
set_nlink(inode, 2);
|
||||||
inode->i_op = &cifs_ipc_inode_ops;
|
inode->i_op = &cifs_ipc_inode_ops;
|
||||||
inode->i_fop = &simple_dir_operations;
|
inode->i_fop = &simple_dir_operations;
|
||||||
inode->i_uid = cifs_sb->mnt_uid;
|
inode->i_uid = cifs_sb->mnt_uid;
|
||||||
@@ -1367,7 +1367,7 @@ mkdir_get_info:
|
|||||||
/* setting nlink not necessary except in cases where we
|
/* setting nlink not necessary except in cases where we
|
||||||
* failed to get it from the server or was set bogus */
|
* failed to get it from the server or was set bogus */
|
||||||
if ((direntry->d_inode) && (direntry->d_inode->i_nlink < 2))
|
if ((direntry->d_inode) && (direntry->d_inode->i_nlink < 2))
|
||||||
direntry->d_inode->i_nlink = 2;
|
set_nlink(direntry->d_inode, 2);
|
||||||
|
|
||||||
mode &= ~current_umask();
|
mode &= ~current_umask();
|
||||||
/* must turn on setgid bit if parent dir has it */
|
/* must turn on setgid bit if parent dir has it */
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user