Lines Matching refs:fattr

82 cifs_revalidate_cache(struct inode *inode, struct cifs_fattr *fattr)  in cifs_revalidate_cache()  argument
105 fattr->cf_mtime = timestamp_truncate(fattr->cf_mtime, inode); in cifs_revalidate_cache()
107 if (timespec64_equal(&mtime, &fattr->cf_mtime) && in cifs_revalidate_cache()
108 cifs_i->server_eof == fattr->cf_eof) { in cifs_revalidate_cache()
127 cifs_nlink_fattr_to_inode(struct inode *inode, struct cifs_fattr *fattr) in cifs_nlink_fattr_to_inode() argument
134 if (fattr->cf_flags & CIFS_FATTR_UNKNOWN_NLINK) { in cifs_nlink_fattr_to_inode()
137 if (fattr->cf_cifsattrs & ATTR_DIRECTORY) in cifs_nlink_fattr_to_inode()
146 set_nlink(inode, fattr->cf_nlink); in cifs_nlink_fattr_to_inode()
151 cifs_fattr_to_inode(struct inode *inode, struct cifs_fattr *fattr, in cifs_fattr_to_inode() argument
158 unlikely(inode_wrong_type(inode, fattr->cf_mode))) { in cifs_fattr_to_inode()
163 cifs_revalidate_cache(inode, fattr); in cifs_fattr_to_inode()
166 fattr->cf_mtime = timestamp_truncate(fattr->cf_mtime, inode); in cifs_fattr_to_inode()
167 fattr->cf_atime = timestamp_truncate(fattr->cf_atime, inode); in cifs_fattr_to_inode()
168 fattr->cf_ctime = timestamp_truncate(fattr->cf_ctime, inode); in cifs_fattr_to_inode()
170 if (timespec64_compare(&fattr->cf_atime, &fattr->cf_mtime) < 0) in cifs_fattr_to_inode()
171 inode_set_atime_to_ts(inode, fattr->cf_mtime); in cifs_fattr_to_inode()
173 inode_set_atime_to_ts(inode, fattr->cf_atime); in cifs_fattr_to_inode()
174 inode_set_mtime_to_ts(inode, fattr->cf_mtime); in cifs_fattr_to_inode()
175 inode_set_ctime_to_ts(inode, fattr->cf_ctime); in cifs_fattr_to_inode()
176 inode->i_rdev = fattr->cf_rdev; in cifs_fattr_to_inode()
177 cifs_nlink_fattr_to_inode(inode, fattr); in cifs_fattr_to_inode()
178 inode->i_uid = fattr->cf_uid; in cifs_fattr_to_inode()
179 inode->i_gid = fattr->cf_gid; in cifs_fattr_to_inode()
184 inode->i_mode = fattr->cf_mode; in cifs_fattr_to_inode()
186 cifs_i->cifsAttrs = fattr->cf_cifsattrs; in cifs_fattr_to_inode()
187 cifs_i->reparse_tag = fattr->cf_cifstag; in cifs_fattr_to_inode()
189 if (fattr->cf_flags & CIFS_FATTR_NEED_REVAL) in cifs_fattr_to_inode()
194 if (fattr->cf_flags & CIFS_FATTR_DELETE_PENDING) in cifs_fattr_to_inode()
199 cifs_i->server_eof = fattr->cf_eof; in cifs_fattr_to_inode()
204 if (is_size_safe_to_change(cifs_i, fattr->cf_eof, from_readdir)) { in cifs_fattr_to_inode()
205 i_size_write(inode, fattr->cf_eof); in cifs_fattr_to_inode()
212 inode->i_blocks = (512 - 1 + fattr->cf_bytes) >> 9; in cifs_fattr_to_inode()
215 if (S_ISLNK(fattr->cf_mode) && fattr->cf_symlink_target) { in cifs_fattr_to_inode()
217 cifs_i->symlink_target = fattr->cf_symlink_target; in cifs_fattr_to_inode()
218 fattr->cf_symlink_target = NULL; in cifs_fattr_to_inode()
222 if (fattr->cf_flags & CIFS_FATTR_JUNCTION) in cifs_fattr_to_inode()
230 cifs_fill_uniqueid(struct super_block *sb, struct cifs_fattr *fattr) in cifs_fill_uniqueid() argument
237 fattr->cf_uniqueid = iunique(sb, ROOT_I); in cifs_fill_uniqueid()
242 cifs_unix_basic_to_fattr(struct cifs_fattr *fattr, FILE_UNIX_BASIC_INFO *info, in cifs_unix_basic_to_fattr() argument
245 memset(fattr, 0, sizeof(*fattr)); in cifs_unix_basic_to_fattr()
246 fattr->cf_uniqueid = le64_to_cpu(info->UniqueId); in cifs_unix_basic_to_fattr()
247 fattr->cf_bytes = le64_to_cpu(info->NumOfBytes); in cifs_unix_basic_to_fattr()
248 fattr->cf_eof = le64_to_cpu(info->EndOfFile); in cifs_unix_basic_to_fattr()
250 fattr->cf_atime = cifs_NTtimeToUnix(info->LastAccessTime); in cifs_unix_basic_to_fattr()
251 fattr->cf_mtime = cifs_NTtimeToUnix(info->LastModificationTime); in cifs_unix_basic_to_fattr()
252 fattr->cf_ctime = cifs_NTtimeToUnix(info->LastStatusChange); in cifs_unix_basic_to_fattr()
255 fattr->cf_mode = le64_to_cpu(info->Permissions); in cifs_unix_basic_to_fattr()
261 fattr->cf_mode &= ~S_IFMT; in cifs_unix_basic_to_fattr()
264 fattr->cf_mode |= S_IFREG; in cifs_unix_basic_to_fattr()
265 fattr->cf_dtype = DT_REG; in cifs_unix_basic_to_fattr()
268 fattr->cf_mode |= S_IFLNK; in cifs_unix_basic_to_fattr()
269 fattr->cf_dtype = DT_LNK; in cifs_unix_basic_to_fattr()
272 fattr->cf_mode |= S_IFDIR; in cifs_unix_basic_to_fattr()
273 fattr->cf_dtype = DT_DIR; in cifs_unix_basic_to_fattr()
276 fattr->cf_mode |= S_IFCHR; in cifs_unix_basic_to_fattr()
277 fattr->cf_dtype = DT_CHR; in cifs_unix_basic_to_fattr()
278 fattr->cf_rdev = MKDEV(le64_to_cpu(info->DevMajor), in cifs_unix_basic_to_fattr()
282 fattr->cf_mode |= S_IFBLK; in cifs_unix_basic_to_fattr()
283 fattr->cf_dtype = DT_BLK; in cifs_unix_basic_to_fattr()
284 fattr->cf_rdev = MKDEV(le64_to_cpu(info->DevMajor), in cifs_unix_basic_to_fattr()
288 fattr->cf_mode |= S_IFIFO; in cifs_unix_basic_to_fattr()
289 fattr->cf_dtype = DT_FIFO; in cifs_unix_basic_to_fattr()
292 fattr->cf_mode |= S_IFSOCK; in cifs_unix_basic_to_fattr()
293 fattr->cf_dtype = DT_SOCK; in cifs_unix_basic_to_fattr()
297 fattr->cf_mode |= S_IFREG; in cifs_unix_basic_to_fattr()
298 fattr->cf_dtype = DT_REG; in cifs_unix_basic_to_fattr()
303 fattr->cf_uid = cifs_sb->ctx->linux_uid; in cifs_unix_basic_to_fattr()
309 fattr->cf_uid = uid; in cifs_unix_basic_to_fattr()
313 fattr->cf_gid = cifs_sb->ctx->linux_gid; in cifs_unix_basic_to_fattr()
319 fattr->cf_gid = gid; in cifs_unix_basic_to_fattr()
323 fattr->cf_nlink = le64_to_cpu(info->Nlinks); in cifs_unix_basic_to_fattr()
333 static void cifs_create_junction_fattr(struct cifs_fattr *fattr, in cifs_create_junction_fattr() argument
340 memset(fattr, 0, sizeof(*fattr)); in cifs_create_junction_fattr()
341 fattr->cf_mode = S_IFDIR | S_IXUGO | S_IRWXU; in cifs_create_junction_fattr()
342 fattr->cf_uid = cifs_sb->ctx->linux_uid; in cifs_create_junction_fattr()
343 fattr->cf_gid = cifs_sb->ctx->linux_gid; in cifs_create_junction_fattr()
344 ktime_get_coarse_real_ts64(&fattr->cf_mtime); in cifs_create_junction_fattr()
345 fattr->cf_atime = fattr->cf_ctime = fattr->cf_mtime; in cifs_create_junction_fattr()
346 fattr->cf_nlink = 2; in cifs_create_junction_fattr()
347 fattr->cf_flags = CIFS_FATTR_JUNCTION; in cifs_create_junction_fattr()
352 struct cifs_fattr *fattr, in update_inode_info() argument
359 *inode = cifs_iget(sb, fattr); in update_inode_info()
369 CIFS_I(*inode)->uniqueid != fattr->cf_uniqueid)) { in update_inode_info()
373 return cifs_fattr_to_inode(*inode, fattr, false); in update_inode_info()
383 struct cifs_fattr fattr = {}; in cifs_get_file_info_unix() local
392 fattr.cf_symlink_target = kstrdup(cfile->symlink_target, GFP_KERNEL); in cifs_get_file_info_unix()
393 if (!fattr.cf_symlink_target) { in cifs_get_file_info_unix()
401 cifs_unix_basic_to_fattr(&fattr, &find_data, cifs_sb); in cifs_get_file_info_unix()
403 cifs_create_junction_fattr(&fattr, inode->i_sb); in cifs_get_file_info_unix()
407 rc = cifs_fattr_to_inode(inode, &fattr, false); in cifs_get_file_info_unix()
416 struct cifs_fattr *fattr, in cifs_get_unix_fattr() argument
442 cifs_unix_basic_to_fattr(fattr, &find_data, cifs_sb); in cifs_get_unix_fattr()
444 cifs_create_junction_fattr(fattr, sb); in cifs_get_unix_fattr()
451 cifs_fill_uniqueid(sb, fattr); in cifs_get_unix_fattr()
455 tmprc = check_mf_symlink(xid, tcon, cifs_sb, fattr, full_path); in cifs_get_unix_fattr()
459 if (S_ISLNK(fattr->cf_mode) && !fattr->cf_symlink_target) { in cifs_get_unix_fattr()
464 &fattr->cf_symlink_target); in cifs_get_unix_fattr()
474 struct cifs_fattr fattr = {}; in cifs_get_inode_info_unix() local
477 rc = cifs_get_unix_fattr(full_path, sb, &fattr, pinode, xid); in cifs_get_inode_info_unix()
481 rc = update_inode_info(sb, &fattr, pinode); in cifs_get_inode_info_unix()
483 kfree(fattr.cf_symlink_target); in cifs_get_inode_info_unix()
489 struct cifs_fattr *fattr, in cifs_get_unix_fattr() argument
505 cifs_sfu_type(struct cifs_fattr *fattr, const char *path, in cifs_sfu_type() argument
522 fattr->cf_mode &= ~S_IFMT; in cifs_sfu_type()
524 if (fattr->cf_eof == 0) { in cifs_sfu_type()
525 fattr->cf_mode |= S_IFIFO; in cifs_sfu_type()
526 fattr->cf_dtype = DT_FIFO; in cifs_sfu_type()
528 } else if (fattr->cf_eof < 8) { in cifs_sfu_type()
529 fattr->cf_mode |= S_IFREG; in cifs_sfu_type()
530 fattr->cf_dtype = DT_REG; in cifs_sfu_type()
572 fattr->cf_mode |= S_IFBLK; in cifs_sfu_type()
573 fattr->cf_dtype = DT_BLK; in cifs_sfu_type()
580 fattr->cf_rdev = MKDEV(mjr, mnr); in cifs_sfu_type()
584 fattr->cf_mode |= S_IFCHR; in cifs_sfu_type()
585 fattr->cf_dtype = DT_CHR; in cifs_sfu_type()
592 fattr->cf_rdev = MKDEV(mjr, mnr); in cifs_sfu_type()
596 fattr->cf_mode |= S_IFLNK; in cifs_sfu_type()
597 fattr->cf_dtype = DT_LNK; in cifs_sfu_type()
600 fattr->cf_mode |= S_IFIFO; in cifs_sfu_type()
601 fattr->cf_dtype = DT_FIFO; in cifs_sfu_type()
603 fattr->cf_mode |= S_IFREG; /* file? */ in cifs_sfu_type()
604 fattr->cf_dtype = DT_REG; in cifs_sfu_type()
608 fattr->cf_mode |= S_IFREG; /* then it is a file */ in cifs_sfu_type()
609 fattr->cf_dtype = DT_REG; in cifs_sfu_type()
625 static int cifs_sfu_mode(struct cifs_fattr *fattr, const unsigned char *path, in cifs_sfu_mode() argument
653 fattr->cf_mode &= ~SFBITS_MASK; in cifs_sfu_mode()
655 mode, fattr->cf_mode); in cifs_sfu_mode()
656 fattr->cf_mode = (mode & SFBITS_MASK) | fattr->cf_mode; in cifs_sfu_mode()
667 static void smb311_posix_info_to_fattr(struct cifs_fattr *fattr, in smb311_posix_info_to_fattr() argument
675 memset(fattr, 0, sizeof(*fattr)); in smb311_posix_info_to_fattr()
678 fattr->cf_cifsattrs = le32_to_cpu(info->DosAttributes); in smb311_posix_info_to_fattr()
679 fattr->cf_uniqueid = le64_to_cpu(info->Inode); in smb311_posix_info_to_fattr()
682 fattr->cf_atime = cifs_NTtimeToUnix(info->LastAccessTime); in smb311_posix_info_to_fattr()
684 ktime_get_coarse_real_ts64(&fattr->cf_atime); in smb311_posix_info_to_fattr()
686 fattr->cf_ctime = cifs_NTtimeToUnix(info->ChangeTime); in smb311_posix_info_to_fattr()
687 fattr->cf_mtime = cifs_NTtimeToUnix(info->LastWriteTime); in smb311_posix_info_to_fattr()
690 fattr->cf_ctime.tv_sec += tcon->ses->server->timeAdj; in smb311_posix_info_to_fattr()
691 fattr->cf_mtime.tv_sec += tcon->ses->server->timeAdj; in smb311_posix_info_to_fattr()
698 fattr->cf_eof = le64_to_cpu(info->EndOfFile); in smb311_posix_info_to_fattr()
699 fattr->cf_bytes = le64_to_cpu(info->AllocationSize); in smb311_posix_info_to_fattr()
700 fattr->cf_createtime = le64_to_cpu(info->CreationTime); in smb311_posix_info_to_fattr()
701 fattr->cf_nlink = le32_to_cpu(info->HardLinks); in smb311_posix_info_to_fattr()
702 fattr->cf_mode = (umode_t) le32_to_cpu(info->Mode); in smb311_posix_info_to_fattr()
705 cifs_reparse_point_to_fattr(cifs_sb, fattr, data)) in smb311_posix_info_to_fattr()
708 fattr->cf_mode &= ~S_IFMT; in smb311_posix_info_to_fattr()
709 if (fattr->cf_cifsattrs & ATTR_DIRECTORY) { in smb311_posix_info_to_fattr()
710 fattr->cf_mode |= S_IFDIR; in smb311_posix_info_to_fattr()
711 fattr->cf_dtype = DT_DIR; in smb311_posix_info_to_fattr()
713 fattr->cf_mode |= S_IFREG; in smb311_posix_info_to_fattr()
714 fattr->cf_dtype = DT_REG; in smb311_posix_info_to_fattr()
718 if (S_ISLNK(fattr->cf_mode)) { in smb311_posix_info_to_fattr()
720 fattr->cf_eof = strnlen(data->symlink_target, PATH_MAX); in smb311_posix_info_to_fattr()
721 fattr->cf_symlink_target = data->symlink_target; in smb311_posix_info_to_fattr()
724 sid_to_id(cifs_sb, &data->posix_owner, fattr, SIDOWNER); in smb311_posix_info_to_fattr()
725 sid_to_id(cifs_sb, &data->posix_group, fattr, SIDGROUP); in smb311_posix_info_to_fattr()
728 fattr->cf_mode, fattr->cf_uniqueid, fattr->cf_nlink); in smb311_posix_info_to_fattr()
731 static void cifs_open_info_to_fattr(struct cifs_fattr *fattr, in cifs_open_info_to_fattr() argument
739 memset(fattr, 0, sizeof(*fattr)); in cifs_open_info_to_fattr()
740 fattr->cf_cifsattrs = le32_to_cpu(info->Attributes); in cifs_open_info_to_fattr()
742 fattr->cf_flags |= CIFS_FATTR_DELETE_PENDING; in cifs_open_info_to_fattr()
745 fattr->cf_atime = cifs_NTtimeToUnix(info->LastAccessTime); in cifs_open_info_to_fattr()
747 ktime_get_coarse_real_ts64(&fattr->cf_atime); in cifs_open_info_to_fattr()
749 fattr->cf_ctime = cifs_NTtimeToUnix(info->ChangeTime); in cifs_open_info_to_fattr()
750 fattr->cf_mtime = cifs_NTtimeToUnix(info->LastWriteTime); in cifs_open_info_to_fattr()
753 fattr->cf_ctime.tv_sec += tcon->ses->server->timeAdj; in cifs_open_info_to_fattr()
754 fattr->cf_mtime.tv_sec += tcon->ses->server->timeAdj; in cifs_open_info_to_fattr()
757 fattr->cf_eof = le64_to_cpu(info->EndOfFile); in cifs_open_info_to_fattr()
758 fattr->cf_bytes = le64_to_cpu(info->AllocationSize); in cifs_open_info_to_fattr()
759 fattr->cf_createtime = le64_to_cpu(info->CreationTime); in cifs_open_info_to_fattr()
760 fattr->cf_nlink = le32_to_cpu(info->NumberOfLinks); in cifs_open_info_to_fattr()
761 fattr->cf_uid = cifs_sb->ctx->linux_uid; in cifs_open_info_to_fattr()
762 fattr->cf_gid = cifs_sb->ctx->linux_gid; in cifs_open_info_to_fattr()
764 fattr->cf_mode = cifs_sb->ctx->file_mode; in cifs_open_info_to_fattr()
766 cifs_reparse_point_to_fattr(cifs_sb, fattr, data)) in cifs_open_info_to_fattr()
769 if (fattr->cf_cifsattrs & ATTR_DIRECTORY) { in cifs_open_info_to_fattr()
770 fattr->cf_mode = S_IFDIR | cifs_sb->ctx->dir_mode; in cifs_open_info_to_fattr()
771 fattr->cf_dtype = DT_DIR; in cifs_open_info_to_fattr()
777 fattr->cf_flags |= CIFS_FATTR_UNKNOWN_NLINK; in cifs_open_info_to_fattr()
779 fattr->cf_mode = S_IFREG | cifs_sb->ctx->file_mode; in cifs_open_info_to_fattr()
780 fattr->cf_dtype = DT_REG; in cifs_open_info_to_fattr()
783 if (fattr->cf_cifsattrs & ATTR_READONLY) in cifs_open_info_to_fattr()
784 fattr->cf_mode &= ~(S_IWUGO); in cifs_open_info_to_fattr()
790 if ((fattr->cf_nlink < 1) && !tcon->unix_ext && in cifs_open_info_to_fattr()
793 fattr->cf_nlink); in cifs_open_info_to_fattr()
794 fattr->cf_flags |= CIFS_FATTR_UNKNOWN_NLINK; in cifs_open_info_to_fattr()
799 if (S_ISLNK(fattr->cf_mode)) { in cifs_open_info_to_fattr()
801 fattr->cf_eof = strnlen(data->symlink_target, PATH_MAX); in cifs_open_info_to_fattr()
802 fattr->cf_symlink_target = data->symlink_target; in cifs_open_info_to_fattr()
813 struct cifs_fattr fattr; in cifs_get_file_info() local
842 cifs_open_info_to_fattr(&fattr, &data, inode->i_sb); in cifs_get_file_info()
843 if (fattr.cf_flags & CIFS_FATTR_DELETE_PENDING) in cifs_get_file_info()
847 cifs_create_junction_fattr(&fattr, inode->i_sb); in cifs_get_file_info()
867 fattr.cf_uniqueid = CIFS_I(inode)->uniqueid; in cifs_get_file_info()
868 fattr.cf_flags |= CIFS_FATTR_NEED_REVAL; in cifs_get_file_info()
870 rc = cifs_fattr_to_inode(inode, &fattr, false); in cifs_get_file_info()
947 struct cifs_open_info_data *data, struct cifs_fattr *fattr) in cifs_set_fattr_ino() argument
955 fattr->cf_uniqueid = CIFS_I(*inode)->uniqueid; in cifs_set_fattr_ino()
957 fattr->cf_uniqueid = iunique(sb, ROOT_I); in cifs_set_fattr_ino()
966 &fattr->cf_uniqueid, data); in cifs_set_fattr_ino()
973 fattr->cf_uniqueid = CIFS_I(*inode)->uniqueid; in cifs_set_fattr_ino()
975 fattr->cf_uniqueid = iunique(sb, ROOT_I); in cifs_set_fattr_ino()
982 if (fattr->cf_uniqueid == 0 && strlen(full_path) == 0) { in cifs_set_fattr_ino()
986 fattr->cf_uniqueid = CIFS_I(*inode)->uniqueid; in cifs_set_fattr_ino()
989 fattr->cf_flags |= CIFS_FATTR_FAKE_ROOT_INO; in cifs_set_fattr_ino()
990 fattr->cf_uniqueid = simple_hashstr(tcon->tree_name); in cifs_set_fattr_ino()
1005 struct cifs_fattr *fattr) in reparse_info_to_fattr() argument
1043 cifs_create_junction_fattr(fattr, sb); in reparse_info_to_fattr()
1048 cifs_create_junction_fattr(fattr, sb); in reparse_info_to_fattr()
1063 smb311_posix_info_to_fattr(fattr, data, sb); in reparse_info_to_fattr()
1065 cifs_open_info_to_fattr(fattr, data, sb); in reparse_info_to_fattr()
1067 fattr->cf_cifstag = data->reparse.tag; in reparse_info_to_fattr()
1075 struct cifs_fattr *fattr, in cifs_get_fattr() argument
1117 full_path, fattr); in cifs_get_fattr()
1119 cifs_open_info_to_fattr(fattr, data, sb); in cifs_get_fattr()
1122 (fattr->cf_flags & CIFS_FATTR_DELETE_PENDING)) in cifs_get_fattr()
1127 cifs_create_junction_fattr(fattr, sb); in cifs_get_fattr()
1157 cifs_dir_info_to_fattr(fattr, fdi, cifs_sb); in cifs_get_fattr()
1158 fattr->cf_uniqueid = le64_to_cpu(si->UniqueId); in cifs_get_fattr()
1178 cifs_set_fattr_ino(xid, tcon, sb, inode, full_path, data, fattr); in cifs_get_fattr()
1187 if ((fattr->cf_cifsattrs & ATTR_SYSTEM) && in cifs_get_fattr()
1189 tmprc = cifs_sfu_type(fattr, full_path, cifs_sb, xid); in cifs_get_fattr()
1196 rc = cifs_acl_to_fattr(cifs_sb, fattr, *inode, in cifs_get_fattr()
1206 rc = cifs_acl_to_fattr(cifs_sb, fattr, *inode, in cifs_get_fattr()
1219 cifs_sfu_mode(fattr, full_path, cifs_sb, xid); in cifs_get_fattr()
1223 tmprc = check_mf_symlink(xid, tcon, cifs_sb, fattr, full_path); in cifs_get_fattr()
1240 struct cifs_fattr fattr = {}; in cifs_get_inode_info() local
1248 rc = cifs_get_fattr(data, sb, xid, fid, &fattr, inode, full_path); in cifs_get_inode_info()
1252 rc = update_inode_info(sb, &fattr, inode); in cifs_get_inode_info()
1254 kfree(fattr.cf_symlink_target); in cifs_get_inode_info()
1259 struct cifs_fattr *fattr, in smb311_posix_get_fattr() argument
1295 full_path, fattr); in smb311_posix_get_fattr()
1297 smb311_posix_info_to_fattr(fattr, data, sb); in smb311_posix_get_fattr()
1302 cifs_create_junction_fattr(fattr, sb); in smb311_posix_get_fattr()
1323 tmprc = check_mf_symlink(xid, tcon, cifs_sb, fattr, full_path); in smb311_posix_get_fattr()
1339 struct cifs_fattr fattr = {}; in smb311_posix_get_inode_info() local
1347 rc = smb311_posix_get_fattr(data, &fattr, full_path, sb, xid); in smb311_posix_get_inode_info()
1351 rc = update_inode_info(sb, &fattr, inode); in smb311_posix_get_inode_info()
1352 if (!rc && fattr.cf_flags & CIFS_FATTR_DELETE_PENDING) in smb311_posix_get_inode_info()
1355 kfree(fattr.cf_symlink_target); in smb311_posix_get_inode_info()
1366 struct cifs_fattr *fattr = opaque; in cifs_find_inode() local
1371 if (CIFS_I(inode)->uniqueid != fattr->cf_uniqueid) in cifs_find_inode()
1375 if (CIFS_I(inode)->createtime != fattr->cf_createtime) in cifs_find_inode()
1379 if (inode_wrong_type(inode, fattr->cf_mode)) in cifs_find_inode()
1384 fattr->cf_flags |= CIFS_FATTR_INO_COLLISION; in cifs_find_inode()
1392 struct cifs_fattr *fattr = opaque; in cifs_init_inode() local
1394 CIFS_I(inode)->uniqueid = fattr->cf_uniqueid; in cifs_init_inode()
1395 CIFS_I(inode)->createtime = fattr->cf_createtime; in cifs_init_inode()
1422 cifs_iget(struct super_block *sb, struct cifs_fattr *fattr) in cifs_iget() argument
1428 cifs_dbg(FYI, "looking for uniqueid=%llu\n", fattr->cf_uniqueid); in cifs_iget()
1431 hash = cifs_uniqueid_to_ino_t(fattr->cf_uniqueid); in cifs_iget()
1433 inode = iget5_locked(sb, hash, cifs_find_inode, cifs_init_inode, fattr); in cifs_iget()
1436 if (fattr->cf_flags & CIFS_FATTR_INO_COLLISION) { in cifs_iget()
1437 fattr->cf_flags &= ~CIFS_FATTR_INO_COLLISION; in cifs_iget()
1442 fattr->cf_uniqueid = iunique(sb, ROOT_I); in cifs_iget()
1448 cifs_fattr_to_inode(inode, fattr, false); in cifs_iget()
1465 struct cifs_fattr fattr = {}; in cifs_root_iget() local
1489 rc = cifs_get_unix_fattr(path, sb, &fattr, &inode, xid); in cifs_root_iget()
1499 rc = smb311_posix_get_fattr(NULL, &fattr, path, sb, xid); in cifs_root_iget()
1501 rc = cifs_get_fattr(NULL, sb, xid, NULL, &fattr, &inode, path); in cifs_root_iget()
1505 if (fattr.cf_flags & CIFS_FATTR_JUNCTION) { in cifs_root_iget()
1506 fattr.cf_flags &= ~CIFS_FATTR_JUNCTION; in cifs_root_iget()
1509 inode = cifs_iget(sb, &fattr); in cifs_root_iget()
1517 if (!rc && fattr.cf_flags & CIFS_FATTR_DELETE_PENDING) in cifs_root_iget()
1538 kfree(fattr.cf_symlink_target); in cifs_root_iget()
1973 struct cifs_fattr fattr; local
2001 cifs_unix_basic_to_fattr(&fattr, info, cifs_sb);
2002 cifs_fill_uniqueid(inode->i_sb, &fattr);
2003 newinode = cifs_iget(inode->i_sb, &fattr);