Lines Matching refs:fattr
77 struct cifs_fattr *fattr) in cifs_prime_dcache() argument
95 if (fattr->cf_flags & CIFS_FATTR_NEED_REVAL) in cifs_prime_dcache()
115 fattr->cf_uniqueid = CIFS_I(inode)->uniqueid; in cifs_prime_dcache()
119 if (CIFS_I(inode)->uniqueid == fattr->cf_uniqueid && in cifs_prime_dcache()
121 (fattr->cf_mode & S_IFMT)) { in cifs_prime_dcache()
122 cifs_fattr_to_inode(inode, fattr); in cifs_prime_dcache()
131 inode = cifs_iget(sb, fattr); in cifs_prime_dcache()
143 cifs_fill_common_info(struct cifs_fattr *fattr, struct cifs_sb_info *cifs_sb) in cifs_fill_common_info() argument
145 fattr->cf_uid = cifs_sb->mnt_uid; in cifs_fill_common_info()
146 fattr->cf_gid = cifs_sb->mnt_gid; in cifs_fill_common_info()
148 if (fattr->cf_cifsattrs & ATTR_DIRECTORY) { in cifs_fill_common_info()
149 fattr->cf_mode = S_IFDIR | cifs_sb->mnt_dir_mode; in cifs_fill_common_info()
150 fattr->cf_dtype = DT_DIR; in cifs_fill_common_info()
152 fattr->cf_mode = S_IFREG | cifs_sb->mnt_file_mode; in cifs_fill_common_info()
153 fattr->cf_dtype = DT_REG; in cifs_fill_common_info()
161 if (fattr->cf_cifsattrs & ATTR_REPARSE) in cifs_fill_common_info()
162 fattr->cf_flags |= CIFS_FATTR_NEED_REVAL; in cifs_fill_common_info()
165 fattr->cf_flags |= CIFS_FATTR_UNKNOWN_NLINK; in cifs_fill_common_info()
167 if (fattr->cf_cifsattrs & ATTR_READONLY) in cifs_fill_common_info()
168 fattr->cf_mode &= ~S_IWUGO; in cifs_fill_common_info()
178 fattr->cf_flags |= CIFS_FATTR_NEED_REVAL; in cifs_fill_common_info()
181 fattr->cf_cifsattrs & ATTR_SYSTEM) { in cifs_fill_common_info()
182 if (fattr->cf_eof == 0) { in cifs_fill_common_info()
183 fattr->cf_mode &= ~S_IFMT; in cifs_fill_common_info()
184 fattr->cf_mode |= S_IFIFO; in cifs_fill_common_info()
185 fattr->cf_dtype = DT_FIFO; in cifs_fill_common_info()
192 fattr->cf_flags |= CIFS_FATTR_NEED_REVAL; in cifs_fill_common_info()
198 cifs_dir_info_to_fattr(struct cifs_fattr *fattr, FILE_DIRECTORY_INFO *info, in cifs_dir_info_to_fattr() argument
201 memset(fattr, 0, sizeof(*fattr)); in cifs_dir_info_to_fattr()
202 fattr->cf_cifsattrs = le32_to_cpu(info->ExtFileAttributes); in cifs_dir_info_to_fattr()
203 fattr->cf_eof = le64_to_cpu(info->EndOfFile); in cifs_dir_info_to_fattr()
204 fattr->cf_bytes = le64_to_cpu(info->AllocationSize); in cifs_dir_info_to_fattr()
205 fattr->cf_createtime = le64_to_cpu(info->CreationTime); in cifs_dir_info_to_fattr()
206 fattr->cf_atime = cifs_NTtimeToUnix(info->LastAccessTime); in cifs_dir_info_to_fattr()
207 fattr->cf_ctime = cifs_NTtimeToUnix(info->ChangeTime); in cifs_dir_info_to_fattr()
208 fattr->cf_mtime = cifs_NTtimeToUnix(info->LastWriteTime); in cifs_dir_info_to_fattr()
210 cifs_fill_common_info(fattr, cifs_sb); in cifs_dir_info_to_fattr()
214 cifs_std_info_to_fattr(struct cifs_fattr *fattr, FIND_FILE_STANDARD_INFO *info, in cifs_std_info_to_fattr() argument
219 memset(fattr, 0, sizeof(*fattr)); in cifs_std_info_to_fattr()
220 fattr->cf_atime = cnvrtDosUnixTm(info->LastAccessDate, in cifs_std_info_to_fattr()
222 fattr->cf_ctime = cnvrtDosUnixTm(info->LastWriteDate, in cifs_std_info_to_fattr()
224 fattr->cf_mtime = cnvrtDosUnixTm(info->LastWriteDate, in cifs_std_info_to_fattr()
227 fattr->cf_cifsattrs = le16_to_cpu(info->Attributes); in cifs_std_info_to_fattr()
228 fattr->cf_bytes = le32_to_cpu(info->AllocationSize); in cifs_std_info_to_fattr()
229 fattr->cf_eof = le32_to_cpu(info->DataSize); in cifs_std_info_to_fattr()
231 cifs_fill_common_info(fattr, cifs_sb); in cifs_std_info_to_fattr()
710 struct cifs_fattr fattr; in cifs_filldir() local
749 cifs_unix_basic_to_fattr(&fattr, in cifs_filldir()
754 cifs_std_info_to_fattr(&fattr, in cifs_filldir()
759 cifs_dir_info_to_fattr(&fattr, in cifs_filldir()
766 fattr.cf_uniqueid = de.ino; in cifs_filldir()
768 fattr.cf_uniqueid = iunique(sb, ROOT_I); in cifs_filldir()
773 couldbe_mf_symlink(&fattr)) in cifs_filldir()
779 fattr.cf_flags |= CIFS_FATTR_NEED_REVAL; in cifs_filldir()
781 cifs_prime_dcache(file_dentry(file), &name, &fattr); in cifs_filldir()
783 ino = cifs_uniqueid_to_ino_t(fattr.cf_uniqueid); in cifs_filldir()
784 return !dir_emit(ctx, name.name, name.len, ino, fattr.cf_dtype); in cifs_filldir()