Lines Matching +refs:sb +refs:id +refs:attrs
225 cifs_fill_uniqueid(struct super_block *sb, struct cifs_fattr *fattr) in cifs_fill_uniqueid() argument
227 struct cifs_sb_info *cifs_sb = CIFS_SB(sb); in cifs_fill_uniqueid()
232 fattr->cf_uniqueid = iunique(sb, ROOT_I); in cifs_fill_uniqueid()
300 u64 id = le64_to_cpu(info->Uid); in cifs_unix_basic_to_fattr() local
301 if (id < ((uid_t)-1)) { in cifs_unix_basic_to_fattr()
302 kuid_t uid = make_kuid(&init_user_ns, id); in cifs_unix_basic_to_fattr()
310 u64 id = le64_to_cpu(info->Gid); in cifs_unix_basic_to_fattr() local
311 if (id < ((gid_t)-1)) { in cifs_unix_basic_to_fattr()
312 kgid_t gid = make_kgid(&init_user_ns, id); in cifs_unix_basic_to_fattr()
329 struct super_block *sb) in cifs_create_junction_fattr() argument
331 struct cifs_sb_info *cifs_sb = CIFS_SB(sb); in cifs_create_junction_fattr()
346 static int update_inode_info(struct super_block *sb, in update_inode_info() argument
350 struct cifs_sb_info *cifs_sb = CIFS_SB(sb); in update_inode_info()
354 *inode = cifs_iget(sb, fattr); in update_inode_info()
411 struct super_block *sb, in cifs_get_unix_fattr() argument
417 struct cifs_sb_info *cifs_sb = CIFS_SB(sb); in cifs_get_unix_fattr()
440 cifs_create_junction_fattr(fattr, sb); in cifs_get_unix_fattr()
447 cifs_fill_uniqueid(sb, fattr); in cifs_get_unix_fattr()
469 struct super_block *sb, unsigned int xid) in cifs_get_inode_info_unix() argument
474 rc = cifs_get_unix_fattr(full_path, sb, &fattr, pinode, xid); in cifs_get_inode_info_unix()
478 rc = update_inode_info(sb, &fattr, pinode); in cifs_get_inode_info_unix()
485 struct super_block *sb, in cifs_get_unix_fattr() argument
495 struct super_block *sb, unsigned int xid) in cifs_get_inode_info_unix() argument
664 struct super_block *sb) in smb311_posix_info_to_fattr() argument
667 struct cifs_sb_info *cifs_sb = CIFS_SB(sb); in smb311_posix_info_to_fattr()
758 struct super_block *sb) in cifs_open_info_to_fattr() argument
761 struct cifs_sb_info *cifs_sb = CIFS_SB(sb); in cifs_open_info_to_fattr()
919 struct super_block *sb, in cifs_backup_query_path_info() argument
924 struct cifs_sb_info *cifs_sb = CIFS_SB(sb); in cifs_backup_query_path_info()
956 static void cifs_set_fattr_ino(int xid, struct cifs_tcon *tcon, struct super_block *sb, in cifs_set_fattr_ino() argument
960 struct cifs_sb_info *cifs_sb = CIFS_SB(sb); in cifs_set_fattr_ino()
968 fattr->cf_uniqueid = iunique(sb, ROOT_I); in cifs_set_fattr_ino()
986 fattr->cf_uniqueid = iunique(sb, ROOT_I); in cifs_set_fattr_ino()
1012 struct super_block *sb, in reparse_info_to_fattr() argument
1019 struct cifs_sb_info *cifs_sb = CIFS_SB(sb); in reparse_info_to_fattr()
1046 cifs_create_junction_fattr(fattr, sb); in reparse_info_to_fattr()
1050 cifs_open_info_to_fattr(fattr, data, sb); in reparse_info_to_fattr()
1057 struct super_block *sb, int xid, in cifs_get_fattr() argument
1067 struct cifs_sb_info *cifs_sb = CIFS_SB(sb); in cifs_get_fattr()
1100 rc = reparse_info_to_fattr(data, sb, xid, tcon, in cifs_get_fattr()
1103 cifs_open_info_to_fattr(fattr, data, sb); in cifs_get_fattr()
1108 cifs_create_junction_fattr(fattr, sb); in cifs_get_fattr()
1127 rc = cifs_backup_query_path_info(xid, tcon, sb, in cifs_get_fattr()
1159 cifs_set_fattr_ino(xid, tcon, sb, inode, full_path, data, fattr); in cifs_get_fattr()
1218 struct super_block *sb, int xid, in cifs_get_inode_info() argument
1229 rc = cifs_get_fattr(data, sb, xid, fid, &fattr, inode, full_path); in cifs_get_inode_info()
1233 rc = update_inode_info(sb, &fattr, inode); in cifs_get_inode_info()
1241 struct super_block *sb, in smb311_posix_get_fattr() argument
1245 struct cifs_sb_info *cifs_sb = CIFS_SB(sb); in smb311_posix_get_fattr()
1271 smb311_posix_info_to_fattr(fattr, &data, &owner, &group, sb); in smb311_posix_get_fattr()
1275 cifs_create_junction_fattr(fattr, sb); in smb311_posix_get_fattr()
1307 struct super_block *sb, const unsigned int xid) in smb311_posix_get_inode_info() argument
1317 rc = smb311_posix_get_fattr(&fattr, full_path, sb, xid); in smb311_posix_get_inode_info()
1321 rc = update_inode_info(sb, &fattr, inode); in smb311_posix_get_inode_info()
1388 cifs_iget(struct super_block *sb, struct cifs_fattr *fattr) in cifs_iget() argument
1399 inode = iget5_locked(sb, hash, cifs_find_inode, cifs_init_inode, fattr); in cifs_iget()
1406 cifs_autodisable_serverino(CIFS_SB(sb)); in cifs_iget()
1408 fattr->cf_uniqueid = iunique(sb, ROOT_I); in cifs_iget()
1415 if (sb->s_flags & SB_NOATIME) in cifs_iget()
1428 struct inode *cifs_root_iget(struct super_block *sb) in cifs_root_iget() argument
1430 struct cifs_sb_info *cifs_sb = CIFS_SB(sb); in cifs_root_iget()
1455 rc = cifs_get_unix_fattr(path, sb, &fattr, &inode, xid); in cifs_root_iget()
1465 rc = smb311_posix_get_fattr(&fattr, path, sb, xid); in cifs_root_iget()
1467 rc = cifs_get_fattr(NULL, sb, xid, NULL, &fattr, &inode, path); in cifs_root_iget()
1475 inode = cifs_iget(sb, &fattr); in cifs_root_iget()
1506 cifs_set_file_info(struct inode *inode, struct iattr *attrs, unsigned int xid, in cifs_set_file_info() argument
1514 if (attrs == NULL) in cifs_set_file_info()
1523 if (attrs->ia_valid & ATTR_ATIME) { in cifs_set_file_info()
1526 cpu_to_le64(cifs_UnixTimeToNT(attrs->ia_atime)); in cifs_set_file_info()
1530 if (attrs->ia_valid & ATTR_MTIME) { in cifs_set_file_info()
1533 cpu_to_le64(cifs_UnixTimeToNT(attrs->ia_mtime)); in cifs_set_file_info()
1543 if (set_time && (attrs->ia_valid & ATTR_CTIME)) { in cifs_set_file_info()
1546 cpu_to_le64(cifs_UnixTimeToNT(attrs->ia_ctime)); in cifs_set_file_info()
1715 struct super_block *sb = dir->i_sb; in cifs_unlink() local
1716 struct cifs_sb_info *cifs_sb = CIFS_SB(sb); in cifs_unlink()
1720 struct iattr *attrs = NULL; in cifs_unlink() local
1785 attrs = kzalloc(sizeof(*attrs), GFP_KERNEL); in cifs_unlink()
1786 if (attrs == NULL) { in cifs_unlink()
1801 rc = cifs_set_file_info(inode, attrs, xid, full_path, dosattr); in cifs_unlink()
1810 cifs_set_file_info(inode, attrs, xid, full_path, origattr); in cifs_unlink()
1824 kfree(attrs); in cifs_unlink()
2506 struct super_block *sb = dentry->d_sb; local
2531 if (cifs_sb_master_tcon(CIFS_SB(sb))->posix_extensions)
2532 rc = smb311_posix_get_inode_info(&inode, full_path, sb, xid);
2533 else if (cifs_sb_master_tcon(CIFS_SB(sb))->unix_ext)
2534 rc = cifs_get_inode_info_unix(&inode, full_path, sb, xid);
2536 rc = cifs_get_inode_info(&inode, full_path, NULL, sb,
2717 cifs_set_file_size(struct inode *inode, struct iattr *attrs, argument
2743 attrs->ia_size, false);
2769 attrs->ia_size, cifs_sb, false);
2779 cifsInode->server_eof = attrs->ia_size;
2780 cifs_setsize(inode, attrs->ia_size);
2788 inode->i_blocks = (512 - 1 + attrs->ia_size) >> 9;
2795 attrs->ia_ctime = attrs->ia_mtime = current_time(inode);
2796 attrs->ia_valid |= ATTR_CTIME | ATTR_MTIME;
2806 cifs_setattr_unix(struct dentry *direntry, struct iattr *attrs) argument
2821 direntry, attrs->ia_valid);
2826 attrs->ia_valid |= ATTR_FORCE;
2828 rc = setattr_prepare(&nop_mnt_idmap, direntry, attrs);
2858 if (attrs->ia_valid & ATTR_SIZE) {
2859 rc = cifs_set_file_size(inode, attrs, xid, full_path);
2865 if (attrs->ia_valid & (ATTR_KILL_SUID|ATTR_KILL_SGID))
2866 attrs->ia_valid &= ~ATTR_MODE;
2875 if (attrs->ia_valid & ATTR_MODE)
2876 args->mode = attrs->ia_mode;
2880 if (attrs->ia_valid & ATTR_UID)
2881 args->uid = attrs->ia_uid;
2885 if (attrs->ia_valid & ATTR_GID)
2886 args->gid = attrs->ia_gid;
2890 if (attrs->ia_valid & ATTR_ATIME)
2891 args->atime = cifs_UnixTimeToNT(attrs->ia_atime);
2895 if (attrs->ia_valid & ATTR_MTIME)
2896 args->mtime = cifs_UnixTimeToNT(attrs->ia_mtime);
2900 if (attrs->ia_valid & ATTR_CTIME)
2901 args->ctime = cifs_UnixTimeToNT(attrs->ia_ctime);
2929 if ((attrs->ia_valid & ATTR_SIZE) &&
2930 attrs->ia_size != i_size_read(inode)) {
2931 truncate_setsize(inode, attrs->ia_size);
2932 fscache_resize_cookie(cifs_inode_cookie(inode), attrs->ia_size);
2935 setattr_copy(&nop_mnt_idmap, inode, attrs);
2944 if (attrs->ia_valid & (ATTR_MTIME | ATTR_CTIME))
2955 cifs_setattr_nounix(struct dentry *direntry, struct iattr *attrs) argument
2974 direntry, attrs->ia_valid);
2977 attrs->ia_valid |= ATTR_FORCE;
2979 rc = setattr_prepare(&nop_mnt_idmap, direntry, attrs);
2998 if (attrs->ia_valid & (ATTR_MTIME | ATTR_SIZE | ATTR_CTIME)) {
3009 if ((attrs->ia_valid & ATTR_MTIME) &&
3024 if (attrs->ia_valid & ATTR_SIZE) {
3025 rc = cifs_set_file_size(inode, attrs, xid, full_path);
3030 if (attrs->ia_valid & ATTR_UID)
3031 uid = attrs->ia_uid;
3033 if (attrs->ia_valid & ATTR_GID)
3034 gid = attrs->ia_gid;
3050 attrs->ia_valid &= ~(ATTR_UID | ATTR_GID);
3053 if (attrs->ia_valid & (ATTR_KILL_SUID|ATTR_KILL_SGID))
3054 attrs->ia_valid &= ~ATTR_MODE;
3056 if (attrs->ia_valid & ATTR_MODE) {
3057 mode = attrs->ia_mode;
3073 if (mode != attrs->ia_mode)
3074 attrs->ia_mode = mode;
3083 attrs->ia_mode = inode->i_mode & ~S_IWUGO;
3094 attrs->ia_mode &= ~(S_IALLUGO);
3096 attrs->ia_mode |=
3099 attrs->ia_mode |=
3104 attrs->ia_valid &= ~ATTR_MODE;
3108 if (attrs->ia_valid & (ATTR_MTIME|ATTR_ATIME|ATTR_CTIME) ||
3109 ((attrs->ia_valid & ATTR_MODE) && dosattr)) {
3110 rc = cifs_set_file_info(inode, attrs, xid, full_path, dosattr);
3118 if ((rc) && (attrs->ia_valid &
3128 if ((attrs->ia_valid & ATTR_SIZE) &&
3129 attrs->ia_size != i_size_read(inode)) {
3130 truncate_setsize(inode, attrs->ia_size);
3131 fscache_resize_cookie(cifs_inode_cookie(inode), attrs->ia_size);
3134 setattr_copy(&nop_mnt_idmap, inode, attrs);
3145 struct iattr *attrs) argument
3159 rc = cifs_setattr_unix(direntry, attrs);
3162 rc = cifs_setattr_nounix(direntry, attrs);