xfs
[Top] [All Lists]

TAKE 977771 -

To: sgi.bugs.xfs@xxxxxxxxxxxx
Subject: TAKE 977771 -
From: xaiki@xxxxxxx (Niv Sardi-Altivanik)
Date: Thu, 28 Feb 2008 11:32:36 +1100 (EST)
Cc: xfs@xxxxxxxxxxx
Sender: xfs-bounce@xxxxxxxxxxx
If you mount an XFS filesystem with no mount options at all, then
the "ikeep" option is set rather than "noikeep".

This regression was introduced in 970451. 

With no mount options specified, xfs_parseargs() does the following:

        int                     ikeep = 0;

        args->flags |= XFSMNT_BARRIER;
        args->flags2 |= XFSMNT2_COMPAT_IOSIZE;

        if (!options)
                goto done;

It only sets the above two options by default and before, it also used to
set XFSMNT_IDELETE by default.

If options are specified, then

        if (!(args->flags & XFSMNT_DMAPI) && !ikeep)
                args->flags |= XFSMNT_IDELETE;

is executed later on which is skipped by the "goto done;" above.

The solution is to invert the logic.


Date:  Thu Feb 28 11:32:16 AEDT 2008
Workarea:  chook.melbourne.sgi.com:/home/xaiki/isms/2.6-xfs
Inspected by:  bnaujok,jeffpc

The following file(s) were checked into:
  longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb


Modid:  xfs-linux-melb:xfs-kern:30590a
fs/xfs/xfsidbg.c - 1.345 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfsidbg.c.diff?r1=text&tr1=1.345&r2=text&tr2=1.344&f=h
        - Change the *_IDELETE flags to *_IKEEP, and flip the logic as 
necessary.

fs/xfs/xfs_ialloc.c - 1.197 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_ialloc.c.diff?r1=text&tr1=1.197&r2=text&tr2=1.196&f=h
        - Change the *_IDELETE flags to *_IKEEP, and flip the logic as 
necessary.

fs/xfs/xfs_vfsops.c - 1.556 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vfsops.c.diff?r1=text&tr1=1.556&r2=text&tr2=1.555&f=h
        - Change the *_IDELETE flags to *_IKEEP, and flip the logic as 
necessary.

fs/xfs/xfs_clnt.h - 1.57 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_clnt.h.diff?r1=text&tr1=1.57&r2=text&tr2=1.56&f=h
        - Change the *_IDELETE flags to *_IKEEP, and flip the logic as 
necessary.

fs/xfs/xfs_mount.h - 1.259 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.h.diff?r1=text&tr1=1.259&r2=text&tr2=1.258&f=h
        - Change the *_IDELETE flags to *_IKEEP, and flip the logic as 
necessary.

fs/xfs/linux-2.6/xfs_super.c - 1.410 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.410&r2=text&tr2=1.409&f=h
        - Change the *_IDELETE flags to *_IKEEP, and flip the logic as 
necessary.



<Prev in Thread] Current Thread [Next in Thread>