Messages in this thread | | | Subject | Re: [PATCH] exfat: remove 'rwoffset' in exfat_inode_info | From | Tetsuhiro Kohada <> | Date | Wed, 16 Sep 2020 14:35:00 +0900 |
| |
On 2020/09/12 14:01, Sungjong Seo wrote: >> Remove 'rwoffset' in exfat_inode_info and replace it with the >> parameter(cpos) of exfat_readdir. >> Since rwoffset of is referenced only by exfat_readdir, it is not >> necessary a exfat_inode_info's member. >> >> Signed-off-by: Tetsuhiro Kohada <kohada.t2@gmail.com> >> --- >> fs/exfat/dir.c | 16 ++++++---------- >> fs/exfat/exfat_fs.h | 2 -- >> fs/exfat/file.c | 2 -- >> fs/exfat/inode.c | 3 --- >> fs/exfat/super.c | 1 - >> 5 files changed, 6 insertions(+), 18 deletions(-) >> >> diff --git a/fs/exfat/dir.c b/fs/exfat/dir.c index >> a9b13ae3f325..fa5bb72aa295 100644 >> --- a/fs/exfat/dir.c >> +++ b/fs/exfat/dir.c > [snip] >> sector @@ -262,13 +260,11 @@ static int exfat_iterate(struct file *filp, >> struct dir_context *ctx) >> goto end_of_dir; >> } >> >> - cpos = EXFAT_DEN_TO_B(ei->rwoffset); >> - >> if (!nb->lfn[0]) >> goto end_of_dir; >> >> i_pos = ((loff_t)ei->start_clu << 32) | >> - ((ei->rwoffset - 1) & 0xffffffff); >> + (EXFAT_B_TO_DEN(cpos-1) & 0xffffffff); > > Need to fix the above line to be: > (EXFAT_B_TO_DEN(cpos)-1)) & 0xffffffff);
Here, we simply converted so that the calculation results would be the same. But after reading it carefully again, I noticed. - Why use the previous entry? - Why does cpos point to stream dir-entry in entry-set?
For the former, there is no need to "++dentry" in exfat_readdir(). For the latter, I think cpos should point to the next to current entry-set.
I'll make V2 considering these. How do you think?
BR --- Tetsuhiro Kohada <kohada.t2@gmail.com>
| |