Re: [PATCH] zonefs: convert zonefs to use the new mount api

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Feb 14, 2024 at 07:31:09AM +0800, Ian Kent wrote:
> On 12/2/24 20:12, Ian Kent wrote:
> > On 12/2/24 09:13, Damien Le Moal wrote:
> > > On 2/11/24 12:36, Ian Kent wrote:
> > > > > > +static void zonefs_free_fc(struct fs_context *fc)
> > > > > > +{
> > > > > > +    struct zonefs_context *ctx = fc->fs_private;
> > > > > I do not think you need this variable.
> > > > That's a fair comment but it says fs_private contains the fs context
> > > > 
> > > > for the casual reader.
> > > > 
> > > > > > +
> > > > > > +    kfree(ctx);
> > > > > Is it safe to not set fc->fs_private to NULL ?
> > > > I think it's been safe to call kfree() with a NULL argument for ages.
> > > That I know, which is why I asked if *not* setting fc->fs_private to
> > > NULL after
> > > the kfree is safe. Because if another call to kfree for that pointer
> > > is done, we
> > > will endup with a double free oops. But as long as the mount API
> > > guarantees that
> > > it will not happen, then OK.
> > 
> > Interesting point, TBH I hadn't thought about it.
> > 
> > 
> > Given that, as far as I have seen, VFS struct private fields leave the
> > 
> > setting and freeing of them to the file system so I assumed that, seeing
> > 
> > this done in other mount api implementations, including ones written by
> > 
> > the mount api author, it was the same as other VFS cases.
> > 
> > 
> > But it's not too hard to check.
> 
> As I thought, the context private data field is delegated to the file
> system.
> 
> The usage here is as expected by the VFS.

Thanks for the reviews. I submitted a v2 patch.
Cheers-
Bill

> 
> 
> Ian
> 
> > 
> > 
> > Ian
> > 
> > > 
> > > > 
> > > > This could be done but so far the convention with mount api code
> > > > 
> > > > appears to have been to add the local variable which I thought was for
> > > > descriptive purposes but it could just be the result of cut and pastes.
> > > Keeping the variable is fine. After all, that is not the fast path :)
> > > 
> > > 
> > 
> 





[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux