[PATCH 1/2] staging: exfat: clean up d_entry rebuilding.

Kohada.Tetsuhiro at dc.MitsubishiElectric.co.jp Kohada.Tetsuhiro at dc.MitsubishiElectric.co.jp
Tue Mar 3 03:07:51 UTC 2020


Thanks for your comment.

> Are you sure this is OK to do? exfat_get_entry_type() does a lot of 
> mapping between values, using a file_dentry_t->type, while
> fid->type is a file_id_t->type.

The fid argument of exfat_rename_file()/move_file()from old_dentry->fid of exfat_rename().
 * exfat_rename_file() <- ffsMoveFile() <- exfat_rename()
 * move_file() <- ffsMoveFile() <- exfat_rename()

The value that vfs sets to the old_dentry of exfat_rename() is the dentry value returned by exfat_lookup(), exfat_create(), and create_dir().
In each function, the value of dentry->fid is initialized to fid->type at create_file(), ffsLookupFile(), and create_dir().

 * create_file() <- ffsCreateFile() <-exfat_create()
 * ffsLookupFile() <- exfat_find() <-exfat_lookup()
 * exfat_mkdir() <- ffsCreateDir() <-create_dir()

> and at first read it's not obvious to 
> fid->me whether type is guaranteed to have the correct value already.

A valid value is set in fid->type for all paths.
What do you think?

--
Kohada Tetsuhiro <Kohada.Tetsuhiro at dc.MitsubishiElectric.co.jp>




More information about the devel mailing list