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

Re: [Cluster-devel] [GFS2 PATCH] GFS2: check NULL return value in gfs2_ok_to_move



Hi,

On Wed, 2014-03-12 at 06:59 -0400, Abhijith Das wrote:
> Err... a heads up: We might have to revise this patch. I just ran fsck on the fs
> after cleanly unmounting it and it came back with a bunch of errors complaining
> about inodes missing '.' and '..' directories. I haven't looked at the fsck
> log in detail, but I'll know more when I investigate it later today.
> 
> Holding off on posting RHEL6/7 versions of this patch.
> 
> Cheers!
> --Abhi
> 
Ok... I'd be surprised if they were related though, since the new test
just aborts the rename without doing anything in that one particular
case,

Steve.

> ----- Original Message -----
> > From: "Steven Whitehouse" <swhiteho redhat com>
> > To: "Abhi Das" <adas redhat com>
> > Cc: cluster-devel redhat com
> > Sent: Wednesday, March 12, 2014 5:03:20 AM
> > Subject: Re: [Cluster-devel] [GFS2 PATCH] GFS2: check NULL return value in gfs2_ok_to_move
> > 
> > Hi,
> > 
> > On Wed, 2014-03-12 at 03:41 -0500, Abhi Das wrote:
> > > gfs2_lookupi() can return NULL if the path to the root is broken by
> > > another rename/rmdir. In this case gfs2_ok_to_move() must check for
> > > this NULL pointer and return error.
> > > 
> > > Resolves: rhbz#1060246
> > > Signed-off-by: Abhi Das <adas redhat com>
> > 
> > Thanks for the patch. I've added it to the -nmw tree,
> > 
> > Steve.
> > 
> > > ---
> > >  fs/gfs2/inode.c | 4 ++++
> > >  1 file changed, 4 insertions(+)
> > > 
> > > diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
> > > index ec455b9..b52ebf8 100644
> > > --- a/fs/gfs2/inode.c
> > > +++ b/fs/gfs2/inode.c
> > > @@ -1299,6 +1299,10 @@ static int gfs2_ok_to_move(struct gfs2_inode *this,
> > > struct gfs2_inode *to)
> > >  		}
> > >  
> > >  		tmp = gfs2_lookupi(dir, &gfs2_qdotdot, 1);
> > > +		if (!tmp) {
> > > +			error = -ENOENT;
> > > +			break;
> > > +		}
> > >  		if (IS_ERR(tmp)) {
> > >  			error = PTR_ERR(tmp);
> > >  			break;
> > 
> > 
> > 



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