xfs
[Top] [All Lists]

Re: [PATCH 0/1] xfs: xfs_inactive fails to cleanup symlinks with attribu

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 0/1] xfs: xfs_inactive fails to cleanup symlinks with attributes
From: Mark Tinguely <tinguely@xxxxxxx>
Date: Thu, 06 Jun 2013 16:29:01 -0500
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20130606211307.GB29338@dastard>
References: <20130606161032.753011157@xxxxxxx> <51B0E03B.3010303@xxxxxxx> <20130606211307.GB29338@dastard>
User-agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:9.0) Gecko/20120122 Thunderbird/9.0
On 06/06/13 16:13, Dave Chinner wrote:
On Thu, Jun 06, 2013 at 02:17:15PM -0500, Mark Tinguely wrote:
On 06/06/13 11:10, Mark Tinguely wrote:
Found this bug testing extended attributes.

# make a big symbolic link that is in the inode core and mostly fills it.
# CRC enabled filesystem will use a 68 byte smaller link in the test.

ln -s 
1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/0123456/a
 a

# the extended attribute will bump the symbolic link to a remote extent
# I think only one of these attribute is needed, but they are so fun...
attr  -Rs 1234567890ad a<   /dev/null
attr  -Rs 1234567890ae a<   /dev/null
attr  -Rs 1234567890af a<   /dev/null


oops. the following steps are also needed - I took them out because I
thought they were unecessary:

# remove the attributes:
attr  -Rr 1234567890ad a
attr  -Rr 1234567890ae a
attr  -Rr 1234567890af a

now we will assert

I cannot reproduce this on a current TOT kernel with or without
CRCs:

# mkfs.xfs -f /dev/vdb
meta-data=/dev/vdb               isize=256    agcount=4, agsize=720896 blks
          =                       sectsz=512   attr=2, projid32bit=1
          =                       crc=0
data     =                       bsize=4096   blocks=2883584, imaxpct=25
          =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=2560, version=2
          =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
# mount /dev/vdb /mnt/scratch/
# cd /mnt/scratch/
# ln -s 
1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/0123456/a
 a
# attr  -Rs 1234567890ad a<   /dev/null
Attribute "1234567890ad" set to a 0 byte value for a:

# attr  -Rs 1234567890ae a<   /dev/null
Attribute "1234567890ae" set to a 0 byte value for a:

# attr  -Rs 1234567890af a<   /dev/null
Attribute "1234567890af" set to a 0 byte value for a:

# attr  -Rr 1234567890ad a
# attr  -Rr 1234567890ae a
# attr  -Rr 1234567890af a
# sync
# cd ~
# umount /mnt/scratch
#

No assert. Can you write an xfstest that reproduces the problem and
post the patch?

Cheers,

Dave.

Yes, these instructions are for a *256* byte inode with top of tree code.

A 512 byte inode will need a bigger link. The link must nearly fill the literal area. Patch has been supplied:

  http://oss.sgi.com/archives/xfs/2013-06/msg00110.html

--Mark.

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