Skip to content

Commit b8f7442

Browse files
aaptelsmfrench
authored andcommitted
CIFS: refactor cifs_get_inode_info()
Make logic of cifs_get_inode() much clearer by moving code to sub functions and adding comments. Document the steps this function does. cifs_get_inode_info() gets and updates a file inode metadata from its file path. * If caller already has raw info data from server they can pass it. * If inode already exists (just need to update) caller can pass it. Step 1: get raw data from server if none was passed Step 2: parse raw data into intermediate internal cifs_fattr struct Step 3: set fattr uniqueid which is later used for inode number. This can sometime be done from raw data Step 4: tweak fattr according to mount options (file_mode, acl to mode bits, uid, gid, etc) Step 5: update or create inode from final fattr struct * add is_smb1_server() helper * add is_inode_cache_good() helper * move SMB1-backupcreds-getinfo-retry to separate func cifs_backup_query_path_info(). * move set-uniqueid code to separate func cifs_set_fattr_ino() * don't clobber uniqueid from backup cred retry * fix some probable corner cases memleaks Signed-off-by: Aurelien Aptel <[email protected]> Signed-off-by: Steve French <[email protected]>
1 parent f6a6bf7 commit b8f7442

File tree

2 files changed

+205
-137
lines changed

2 files changed

+205
-137
lines changed

fs/cifs/cifsglob.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1967,4 +1967,10 @@ extern struct smb_version_values smb302_values;
19671967
#define ALT_SMB311_VERSION_STRING "3.11"
19681968
extern struct smb_version_operations smb311_operations;
19691969
extern struct smb_version_values smb311_values;
1970+
1971+
static inline bool is_smb1_server(struct TCP_Server_Info *server)
1972+
{
1973+
return strcmp(server->vals->version_string, SMB1_VERSION_STRING) == 0;
1974+
}
1975+
19701976
#endif /* _CIFS_GLOB_H */

0 commit comments

Comments
 (0)