Re: [PATCH v3 1/2] fs/super: function to prevent super re-use

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

 



Thank you for your comments. Uploaded v4 with requested changes.
--Daniil

On Tue, May 31, 2022 at 5:24 PM Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
>
> On Mon, May 30, 2022 at 11:39:57AM +1000, Daniil Lunev wrote:
> > +void retire_super(struct super_block *sb)
> > +{
> > +     down_write(&sb->s_umount);
> > +     if (sb->s_bdi != &noop_backing_dev_info) {
> > +             if (sb->s_iflags & SB_I_PERSB_BDI && !(sb->s_iflags & SB_I_RETIRED))
>
> SB_I_PERSB_BDI can't be set for noop_backing_dev_info, so that check
> should not be needed.  Which also conveniently fixes the overly long
> line.
>
> Also this should clear SB_I_PERSB_BDI as the only place that checks
> it is the unregistration.
>
> >       spin_lock(&sb_lock);
> > -     /* should be initialized for __put_super_and_need_restart() */
>
> This is a completely unrelated change.  While the function is gone
> it might be worth to check what it got renamed to or folded in, or
> if the initialization is still needed.  But all that is for a separate
> patch.
>
> >       up_write(&sb->s_umount);
> >       if (sb->s_bdi != &noop_backing_dev_info) {
> > -             if (sb->s_iflags & SB_I_PERSB_BDI)
> > +             /* retire should have already unregistered bdi */
> > +             if (sb->s_iflags & SB_I_PERSB_BDI && !(sb->s_iflags & SB_I_RETIRED))
> >                       bdi_unregister(sb->s_bdi);
> >               bdi_put(sb->s_bdi);
>
> And once SB_I_PERSB_BDI is dropped when retiring we don't need this
> change.



[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