public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* can't remove dir
@ 2007-09-14  8:09 Louis-David Mitterrand
  2007-09-14  8:38 ` [UNSURE] " Justin Piszcz
  2007-09-14 14:14 ` Eric Sandeen
  0 siblings, 2 replies; 22+ messages in thread
From: Louis-David Mitterrand @ 2007-09-14  8:09 UTC (permalink / raw)
  To: linux-xfs

Hello,

While cleaning up /lost+found a directory resisted removal:

	sylla:/lost+found# rm 1879629858 -rf
	rm: cannot remove directory `1879629858': Directory not empty

The directory _is_ empty and "-rf" should remove it anyway, so this 
looks like a fs error.

This is on debian unstable with 2.6.23-rc6.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [UNSURE] can't remove dir
  2007-09-14  8:09 can't remove dir Louis-David Mitterrand
@ 2007-09-14  8:38 ` Justin Piszcz
  2007-09-14  8:41   ` Louis-David Mitterrand
  2007-09-14 14:14 ` Eric Sandeen
  1 sibling, 1 reply; 22+ messages in thread
From: Justin Piszcz @ 2007-09-14  8:38 UTC (permalink / raw)
  To: Louis-David Mitterrand; +Cc: linux-xfs



On Fri, 14 Sep 2007, Louis-David Mitterrand wrote:

> Hello,
>
> While cleaning up /lost+found a directory resisted removal:
>
> 	sylla:/lost+found# rm 1879629858 -rf
> 	rm: cannot remove directory `1879629858': Directory not empty
>
> The directory _is_ empty and "-rf" should remove it anyway, so this
> looks like a fs error.
>
> This is on debian unstable with 2.6.23-rc6.
>
>

what does "ls -al 1879629858" say?

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [UNSURE] can't remove dir
  2007-09-14  8:38 ` [UNSURE] " Justin Piszcz
@ 2007-09-14  8:41   ` Louis-David Mitterrand
  2007-09-14  8:45     ` Justin Piszcz
  2007-09-14  9:10     ` David Chinner
  0 siblings, 2 replies; 22+ messages in thread
From: Louis-David Mitterrand @ 2007-09-14  8:41 UTC (permalink / raw)
  To: linux-xfs

On Fri, Sep 14, 2007 at 04:38:22AM -0400, Justin Piszcz wrote:
>
> On Fri, 14 Sep 2007, Louis-David Mitterrand wrote:
>>
>> While cleaning up /lost+found a directory resisted removal:
>>
>> 	sylla:/lost+found# rm 1879629858 -rf
>> 	rm: cannot remove directory `1879629858': Directory not empty
>>
>> The directory _is_ empty and "-rf" should remove it anyway, so this
>> looks like a fs error.
>>
>> This is on debian unstable with 2.6.23-rc6.
>
> what does "ls -al 1879629858" say?
>

I knew someone would ask, and this is slightly insulting ;-)

sylla:/lost+found# ls -al 1879629858
total 24
drwxr-xr-x 2 root root   8192 2007-09-14 09:25 ./
drwxr-xr-x 3 root root 299008 2007-09-14 10:05 ../

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [UNSURE] can't remove dir
  2007-09-14  8:41   ` Louis-David Mitterrand
@ 2007-09-14  8:45     ` Justin Piszcz
  2007-09-14  9:10     ` David Chinner
  1 sibling, 0 replies; 22+ messages in thread
From: Justin Piszcz @ 2007-09-14  8:45 UTC (permalink / raw)
  To: Louis-David Mitterrand; +Cc: linux-xfs



On Fri, 14 Sep 2007, Louis-David Mitterrand wrote:

> On Fri, Sep 14, 2007 at 04:38:22AM -0400, Justin Piszcz wrote:
>>
>> On Fri, 14 Sep 2007, Louis-David Mitterrand wrote:
>>>
>>> While cleaning up /lost+found a directory resisted removal:
>>>
>>> 	sylla:/lost+found# rm 1879629858 -rf
>>> 	rm: cannot remove directory `1879629858': Directory not empty
>>>
>>> The directory _is_ empty and "-rf" should remove it anyway, so this
>>> looks like a fs error.
>>>
>>> This is on debian unstable with 2.6.23-rc6.
>>
>> what does "ls -al 1879629858" say?
>>
>
> I knew someone would ask, and this is slightly insulting ;-)
>
> sylla:/lost+found# ls -al 1879629858
> total 24
> drwxr-xr-x 2 root root   8192 2007-09-14 09:25 ./
> drwxr-xr-x 3 root root 299008 2007-09-14 10:05 ../
>
>

What happens if you reboot to (e.g., knoppix)

and run: xfs_check /dev/that_partition?

and/or:

xfs_repair -n /dev/that_partition?

        -n     No modify mode.  Specifies that xfs_repair should not modify the
               filesystem but should only scan the filesystem and indicate what
               repairs would have been made.

This would be useful to figure out what went wrong.

Justin.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [UNSURE] can't remove dir
  2007-09-14  8:41   ` Louis-David Mitterrand
  2007-09-14  8:45     ` Justin Piszcz
@ 2007-09-14  9:10     ` David Chinner
  2007-09-14  9:27       ` Louis-David Mitterrand
  1 sibling, 1 reply; 22+ messages in thread
From: David Chinner @ 2007-09-14  9:10 UTC (permalink / raw)
  To: linux-xfs

On Fri, Sep 14, 2007 at 10:41:25AM +0200, Louis-David Mitterrand wrote:
> On Fri, Sep 14, 2007 at 04:38:22AM -0400, Justin Piszcz wrote:
> >
> > On Fri, 14 Sep 2007, Louis-David Mitterrand wrote:
> >>
> >> While cleaning up /lost+found a directory resisted removal:
> >>
> >> 	sylla:/lost+found# rm 1879629858 -rf
> >> 	rm: cannot remove directory `1879629858': Directory not empty
> >>
> >> The directory _is_ empty and "-rf" should remove it anyway, so this
> >> looks like a fs error.
> >>
> >> This is on debian unstable with 2.6.23-rc6.
> >
> > what does "ls -al 1879629858" say?
> >
> 
> I knew someone would ask, and this is slightly insulting ;-)

Well, feel insulted if you want, but it was *exactly* the
right question to ask. :/

Looking at the link count of the directory that can't be removed:

> sylla:/lost+found# ls -al 1879629858
> total 24
> drwxr-xr-x 2 root root   8192 2007-09-14 09:25 ./

Which is correct for an empty directory. So this code in xfs_rmdir:

        ASSERT(cdp->i_d.di_nlink >= 2);
        if (cdp->i_d.di_nlink != 2) {
                error = XFS_ERROR(ENOTEMPTY);
                goto error_return;
        }

is not where the error is coming from.

But, the size indicates that the dirctory is not in shortform
state. An empty directory should look like:

# mkdir empty
# ls -la empty
total 0
drwxrwxr-x 2 root root  6 Sep 14 18:58 ./
                       ^^
drwxrwxr-x 4 root root 28 Sep 14 18:58 ../
#

So that means the error came from:

        if (!xfs_dir_isempty(cdp)) {
                error = XFS_ERROR(ENOTEMPTY);
                goto error_return;
        }

xfs_dir_isempty(
        xfs_inode_t     *dp)
{
        xfs_dir2_sf_t   *sfp;

        ASSERT((dp->i_d.di_mode & S_IFMT) == S_IFDIR);
        if (dp->i_d.di_size == 0)       /* might happen during shutdown. */
                return 1;
>>>>>>> if (dp->i_d.di_size > XFS_IFORK_DSIZE(dp))
>>>>>>>         return 0;
        sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data;
        return !sfp->hdr.count;
}

So, this wasn't a stupid question at all. It indicates that the
source of the problem is a directory that did not get converted
back to short form as the entries were removed and greatly narrows
down teh possible causes of the problem.

Can you tell us the output of 'xfs_info <mntpt>'?

Also, get the inode number of the bad directory (ls -i) and then
run:

# xfs_db -r -c "inode <inode_num>" -c "p" <device of fs>

So we can see what the state of the inode is?

BTW, what problem led you to running xfs_repair in the first
place (i.e.  what led to lost+found getting populated)?

Cheers,

Dave.
-- 
Dave Chinner
Principal Engineer
SGI Australian Software Group

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: can't remove dir
  2007-09-14  9:10     ` David Chinner
@ 2007-09-14  9:27       ` Louis-David Mitterrand
  2007-09-16 22:32         ` David Chinner
  2007-09-18  2:43         ` Barry Naujok
  0 siblings, 2 replies; 22+ messages in thread
From: Louis-David Mitterrand @ 2007-09-14  9:27 UTC (permalink / raw)
  To: linux-xfs

On Fri, Sep 14, 2007 at 07:10:32PM +1000, David Chinner wrote:
> 
> Can you tell us the output of 'xfs_info <mntpt>'?

sylla:~# xfs_info /
meta-data=/dev/root              isize=256    agcount=41, agsize=15252656 blks
         =                       sectsz=4096  attr=1
data     =                       bsize=4096   blocks=610178720, imaxpct=25
         =                       sunit=16     swidth=80 blks, unwritten=1
naming   =version 2              bsize=4096  
log      =internal               bsize=4096   blocks=32768, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=0
realtime =none                   extsz=327680 blocks=0, rtextents=0

> Also, get the inode number of the bad directory (ls -i) and then
> run:
> 
> # xfs_db -r -c "inode <inode_num>" -c "p" <device of fs>

sylla:/lost+found# xfs_db -r -c "inode 1879629858" -c "p" /dev/md1
core.magic = 0x494e
core.mode = 040755
core.version = 1
core.format = 2 (extents)
core.nlinkv1 = 2
core.uid = 0
core.gid = 0
core.flushiter = 9
core.atime.sec = Tue Aug  1 20:49:16 2006
core.atime.nsec = 000000000
core.mtime.sec = Fri Sep 14 09:25:29 2007
core.mtime.nsec = 589593557
core.ctime.sec = Fri Sep 14 09:25:29 2007
core.ctime.nsec = 589593557
core.size = 8192
core.nblocks = 3
core.extsize = 0
core.nextents = 2
core.naextents = 0
core.forkoff = 0
core.aformat = 2 (extents)
core.dmevmask = 0
core.dmstate = 0
core.newrtbm = 0
core.prealloc = 0
core.realtime = 0
core.immutable = 0
core.append = 0
core.sync = 0
core.noatime = 0
core.nodump = 0
core.rtinherit = 0
core.projinherit = 0
core.nosymlinks = 0
core.extsz = 0
core.extszinherit = 0
core.nodefrag = 0
core.gen = 0
next_unlinked = null
u.bmx[0-1] = [startoff,startblock,blockcount,extentflag] 0:[0,117476868,2,0] 1:[8388608,125865476,1,0]

> So we can see what the state of the inode is?
> 
> BTW, what problem led you to running xfs_repair in the first
> place (i.e.  what led to lost+found getting populated)?

The infamous 2.6.17.1 corruption.

Thanks,

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: can't remove dir
  2007-09-14  8:09 can't remove dir Louis-David Mitterrand
  2007-09-14  8:38 ` [UNSURE] " Justin Piszcz
@ 2007-09-14 14:14 ` Eric Sandeen
  2007-09-14 14:18   ` Eric Sandeen
  2007-10-17 16:15   ` Louis-David Mitterrand
  1 sibling, 2 replies; 22+ messages in thread
From: Eric Sandeen @ 2007-09-14 14:14 UTC (permalink / raw)
  To: linux-xfs

Louis-David Mitterrand wrote:
> Hello,
> 
> While cleaning up /lost+found a directory resisted removal:
> 
> 	sylla:/lost+found# rm 1879629858 -rf
> 	rm: cannot remove directory `1879629858': Directory not empty
> 
> The directory _is_ empty and "-rf" should remove it anyway, so this 
> looks like a fs error.
> 
> This is on debian unstable with 2.6.23-rc6.
> 
> 

Any errors in the system logs?  I'd try most recent xfs_repair next.  If
that doesn't fix it, make an xfs_metadump for Barry to look at.  :)
Make a backup first if you're paranoid.

-Eric

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: can't remove dir
  2007-09-14 14:14 ` Eric Sandeen
@ 2007-09-14 14:18   ` Eric Sandeen
  2007-10-17 16:15   ` Louis-David Mitterrand
  1 sibling, 0 replies; 22+ messages in thread
From: Eric Sandeen @ 2007-09-14 14:18 UTC (permalink / raw)
  To: linux-xfs

Eric Sandeen wrote:
> Louis-David Mitterrand wrote:
>> Hello,
>>
>> While cleaning up /lost+found a directory resisted removal:
>>
>> 	sylla:/lost+found# rm 1879629858 -rf
>> 	rm: cannot remove directory `1879629858': Directory not empty
>>
>> The directory _is_ empty and "-rf" should remove it anyway, so this 
>> looks like a fs error.
>>
>> This is on debian unstable with 2.6.23-rc6.
>>
>>
> 
> Any errors in the system logs?  I'd try most recent xfs_repair next.  If
> that doesn't fix it, make an xfs_metadump for Barry to look at.  :)
> Make a backup first if you're paranoid.

Some day I'll learn to read all of a thread before replying... ignore
me.  Looks like dgc has things well under control.  :)

-Eric

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: can't remove dir
  2007-09-14  9:27       ` Louis-David Mitterrand
@ 2007-09-16 22:32         ` David Chinner
  2007-09-18  2:43         ` Barry Naujok
  1 sibling, 0 replies; 22+ messages in thread
From: David Chinner @ 2007-09-16 22:32 UTC (permalink / raw)
  To: linux-xfs

On Fri, Sep 14, 2007 at 11:27:21AM +0200, Louis-David Mitterrand wrote:
> On Fri, Sep 14, 2007 at 07:10:32PM +1000, David Chinner wrote:
> > BTW, what problem led you to running xfs_repair in the first
> > place (i.e.  what led to lost+found getting populated)?
> 
> The infamous 2.6.17.1 corruption.

Well, that explains it ;)

http://oss.sgi.com/projects/xfs/faq.html#dir2

"To add insult to injury, xfs_repair(8) is currently not correcting
these directories on detection of this corrupt state either. This
xfs_repair issue is actively being worked on, and a fixed version
will be available shortly.

Update: a fixed xfs_repair is now available; version 2.8.10 or later
of the xfsprogs package contains the fixed version."

What version of xfs_repair are you using? (xfs_repair -V)

Cheers,

Dave.
-- 
Dave Chinner
Principal Engineer
SGI Australian Software Group

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: can't remove dir
  2007-09-14  9:27       ` Louis-David Mitterrand
  2007-09-16 22:32         ` David Chinner
@ 2007-09-18  2:43         ` Barry Naujok
  1 sibling, 0 replies; 22+ messages in thread
From: Barry Naujok @ 2007-09-18  2:43 UTC (permalink / raw)
  To: Louis-David Mitterrand, linux-xfs

On Fri, 14 Sep 2007 19:27:21 +1000, Louis-David Mitterrand  
<vindex+lists-xfs@apartia.org> wrote:

> On Fri, Sep 14, 2007 at 07:10:32PM +1000, David Chinner wrote:
>>
>> Also, get the inode number of the bad directory (ls -i) and then
>> run:
>>
>> # xfs_db -r -c "inode <inode_num>" -c "p" <device of fs>
>
> sylla:/lost+found# xfs_db -r -c "inode 1879629858" -c "p" /dev/md1
> core.magic = 0x494e
> core.mode = 040755
> core.version = 1
> core.format = 2 (extents)
> core.nlinkv1 = 2
> core.uid = 0
> core.gid = 0
> core.flushiter = 9
> core.atime.sec = Tue Aug  1 20:49:16 2006
> core.atime.nsec = 000000000
> core.mtime.sec = Fri Sep 14 09:25:29 2007
> core.mtime.nsec = 589593557
> core.ctime.sec = Fri Sep 14 09:25:29 2007
> core.ctime.nsec = 589593557
> core.size = 8192
> core.nblocks = 3
> core.extsize = 0
> core.nextents = 2
> core.naextents = 0
> core.forkoff = 0
> core.aformat = 2 (extents)
> core.dmevmask = 0
> core.dmstate = 0
> core.newrtbm = 0
> core.prealloc = 0
> core.realtime = 0
> core.immutable = 0
> core.append = 0
> core.sync = 0
> core.noatime = 0
> core.nodump = 0
> core.rtinherit = 0
> core.projinherit = 0
> core.nosymlinks = 0
> core.extsz = 0
> core.extszinherit = 0
> core.nodefrag = 0
> core.gen = 0
> next_unlinked = null
> u.bmx[0-1] = [startoff,startblock,blockcount,extentflag]  
> 0:[0,117476868,2,0] 1:[8388608,125865476,1,0]
>

If you still have the bad directory, can you run these as well?

# xfs_db -r -c "inode 1879629858" -c "dblock 0" -c "p" /dev/md1
# xfs_db -r -c "inode 1879629858" -c "dblock 1" -c "p" /dev/md1
# xfs_db -r -c "inode 1879629858" -c "dblock 8388608" -c "p" /dev/md1

Thanks,
Barry.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: can't remove dir
  2007-09-14 14:14 ` Eric Sandeen
  2007-09-14 14:18   ` Eric Sandeen
@ 2007-10-17 16:15   ` Louis-David Mitterrand
  2007-10-17 16:18     ` Justin Piszcz
                       ` (2 more replies)
  1 sibling, 3 replies; 22+ messages in thread
From: Louis-David Mitterrand @ 2007-10-17 16:15 UTC (permalink / raw)
  To: linux-xfs

On Fri, Sep 14, 2007 at 09:14:25AM -0500, Eric Sandeen wrote:
> Louis-David Mitterrand wrote:
> > Hello,
> > 
> > While cleaning up /lost+found a directory resisted removal:
> > 
> > 	sylla:/lost+found# rm 1879629858 -rf
> > 	rm: cannot remove directory `1879629858': Directory not empty
> > 
> > The directory _is_ empty and "-rf" should remove it anyway, so this 
> > looks like a fs error.
> > 
> > This is on debian unstable with 2.6.23-rc6.
> 
> Any errors in the system logs?  I'd try most recent xfs_repair next.  If
> that doesn't fix it, make an xfs_metadump for Barry to look at.  :)
> Make a backup first if you're paranoid.

Hi again,

Using a 2.6.23 kernel and after a clean xfs_repair-2.9.4 run I can't 
remove that file:

sylla:/# rm /lost+found/3912672557
rm: cannot remove `/lost+found/3912672557': Operation not permitted

sylla:/# ls -li /lost+found/3912672557                                 
3912672557 lrwxrwxrwx 1 root root 9 2006-04-09 19:10 /lost+found/3912672557 -> unix.7.gz

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: can't remove dir
  2007-10-17 16:15   ` Louis-David Mitterrand
@ 2007-10-17 16:18     ` Justin Piszcz
  2007-10-17 16:30       ` Louis-David Mitterrand
  2007-10-17 21:24     ` David Chinner
  2007-10-18  1:37     ` Barry Naujok
  2 siblings, 1 reply; 22+ messages in thread
From: Justin Piszcz @ 2007-10-17 16:18 UTC (permalink / raw)
  To: Louis-David Mitterrand; +Cc: linux-xfs



On Wed, 17 Oct 2007, Louis-David Mitterrand wrote:

> On Fri, Sep 14, 2007 at 09:14:25AM -0500, Eric Sandeen wrote:
>> Louis-David Mitterrand wrote:
>>> Hello,
>>>
>>> While cleaning up /lost+found a directory resisted removal:
>>>
>>> 	sylla:/lost+found# rm 1879629858 -rf
>>> 	rm: cannot remove directory `1879629858': Directory not empty
>>>
>>> The directory _is_ empty and "-rf" should remove it anyway, so this
>>> looks like a fs error.
>>>
>>> This is on debian unstable with 2.6.23-rc6.
>>
>> Any errors in the system logs?  I'd try most recent xfs_repair next.  If
>> that doesn't fix it, make an xfs_metadump for Barry to look at.  :)
>> Make a backup first if you're paranoid.
>
> Hi again,
>
> Using a 2.6.23 kernel and after a clean xfs_repair-2.9.4 run I can't
> remove that file:
>
> sylla:/# rm /lost+found/3912672557
> rm: cannot remove `/lost+found/3912672557': Operation not permitted
>
> sylla:/# ls -li /lost+found/3912672557
> 3912672557 lrwxrwxrwx 1 root root 9 2006-04-09 19:10 /lost+found/3912672557 -> unix.7.gz
>
>

lsattr -l /lost+found/3912672557

Shows?

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: can't remove dir
  2007-10-17 16:18     ` Justin Piszcz
@ 2007-10-17 16:30       ` Louis-David Mitterrand
  0 siblings, 0 replies; 22+ messages in thread
From: Louis-David Mitterrand @ 2007-10-17 16:30 UTC (permalink / raw)
  To: linux-xfs

On Wed, Oct 17, 2007 at 12:18:58PM -0400, Justin Piszcz wrote:
>>
>> Using a 2.6.23 kernel and after a clean xfs_repair-2.9.4 run I can't
>> remove that file:
>>
>> sylla:/# rm /lost+found/3912672557
>> rm: cannot remove `/lost+found/3912672557': Operation not permitted
>>
>> sylla:/# ls -li /lost+found/3912672557
>> 3912672557 lrwxrwxrwx 1 root root 9 2006-04-09 19:10 
>> /lost+found/3912672557 -> unix.7.gz
>>
>
> lsattr -l /lost+found/3912672557
>
> Shows?

sylla:~# lsattr -l /lost+found/3912672557
lsattr: No such file or directory While reading flags on /lost+found/3912672557

The file is a dangling link.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: can't remove dir
  2007-10-17 16:15   ` Louis-David Mitterrand
  2007-10-17 16:18     ` Justin Piszcz
@ 2007-10-17 21:24     ` David Chinner
  2007-10-18 13:11       ` Louis-David Mitterrand
  2007-10-18  1:37     ` Barry Naujok
  2 siblings, 1 reply; 22+ messages in thread
From: David Chinner @ 2007-10-17 21:24 UTC (permalink / raw)
  To: linux-xfs

On Wed, Oct 17, 2007 at 06:15:04PM +0200, Louis-David Mitterrand wrote:
> Using a 2.6.23 kernel and after a clean xfs_repair-2.9.4 run I can't 
> remove that file:
> 
> sylla:/# rm /lost+found/3912672557
> rm: cannot remove `/lost+found/3912672557': Operation not permitted
> 
> sylla:/# ls -li /lost+found/3912672557                                 
> 3912672557 lrwxrwxrwx 1 root root 9 2006-04-09 19:10 /lost+found/3912672557 -> unix.7.gz

Can you post the output of:

# xfs_db -r -c "inode 3912672557" -c "p" <device>

Cheers,

Dave.
-- 
Dave Chinner
Principal Engineer
SGI Australian Software Group

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: can't remove dir
  2007-10-17 16:15   ` Louis-David Mitterrand
  2007-10-17 16:18     ` Justin Piszcz
  2007-10-17 21:24     ` David Chinner
@ 2007-10-18  1:37     ` Barry Naujok
  2 siblings, 0 replies; 22+ messages in thread
From: Barry Naujok @ 2007-10-18  1:37 UTC (permalink / raw)
  To: Louis-David Mitterrand, linux-xfs

On Thu, 18 Oct 2007 02:15:04 +1000, Louis-David Mitterrand  
<vindex+lists-xfs@apartia.org> wrote:

> On Fri, Sep 14, 2007 at 09:14:25AM -0500, Eric Sandeen wrote:
>> Louis-David Mitterrand wrote:
>> > Hello,
>> >
>> > While cleaning up /lost+found a directory resisted removal:
>> >
>> > 	sylla:/lost+found# rm 1879629858 -rf
>> > 	rm: cannot remove directory `1879629858': Directory not empty
>> >
>> > The directory _is_ empty and "-rf" should remove it anyway, so this
>> > looks like a fs error.
>> >
>> > This is on debian unstable with 2.6.23-rc6.
>>
>> Any errors in the system logs?  I'd try most recent xfs_repair next.  If
>> that doesn't fix it, make an xfs_metadump for Barry to look at.  :)
>> Make a backup first if you're paranoid.
>
> Hi again,
>
> Using a 2.6.23 kernel and after a clean xfs_repair-2.9.4 run I can't
> remove that file:
>
> sylla:/# rm /lost+found/3912672557
> rm: cannot remove `/lost+found/3912672557': Operation not permitted
>
> sylla:/# ls -li /lost+found/3912672557
> 3912672557 lrwxrwxrwx 1 root root 9 2006-04-09 19:10  
> /lost+found/3912672557 -> unix.7.gz

Can you apply the patch in
http://oss.sgi.com/archives/xfs/2007-09/msg00222.html
and run the patched repair on your filesytem?

Barry.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: can't remove dir
  2007-10-17 21:24     ` David Chinner
@ 2007-10-18 13:11       ` Louis-David Mitterrand
  2007-10-18 22:07         ` David Chinner
  0 siblings, 1 reply; 22+ messages in thread
From: Louis-David Mitterrand @ 2007-10-18 13:11 UTC (permalink / raw)
  To: linux-xfs

On Thu, Oct 18, 2007 at 07:24:39AM +1000, David Chinner wrote:
> On Wed, Oct 17, 2007 at 06:15:04PM +0200, Louis-David Mitterrand wrote:
> > Using a 2.6.23 kernel and after a clean xfs_repair-2.9.4 run I can't 
> > remove that file:
> > 
> > sylla:/# rm /lost+found/3912672557
> > rm: cannot remove `/lost+found/3912672557': Operation not permitted
> > 
> > sylla:/# ls -li /lost+found/3912672557                                 
> > 3912672557 lrwxrwxrwx 1 root root 9 2006-04-09 19:10 /lost+found/3912672557 -> unix.7.gz
> 
> Can you post the output of:
> 
> # xfs_db -r -c "inode 3912672557" -c "p" <device>

Here:

core.magic = 0x494e
core.mode = 0120777
core.version = 1
core.format = 1 (local)
core.nlinkv1 = 1
core.uid = 0
core.gid = 0
core.flushiter = 1
core.atime.sec = Sun Apr  9 19:10:38 2006
core.atime.nsec = 316368304
core.mtime.sec = Sun Apr  9 19:10:38 2006
core.mtime.nsec = 316368304
core.ctime.sec = Sun Apr  9 19:10:38 2006
core.ctime.nsec = 317368152
core.size = 9
core.nblocks = 0
core.extsize = 0
core.nextents = 0
core.naextents = 0
core.forkoff = 0
core.aformat = 2 (extents)
core.dmevmask = 0x4d291522
core.dmstate = 21036
core.newrtbm = 0
core.prealloc = 0
core.realtime = 0
core.immutable = 1
core.append = 1
core.sync = 0
core.noatime = 1
core.nodump = 0
core.rtinherit = 1
core.projinherit = 0
core.nosymlinks = 0
core.extsz = 0
core.extszinherit = 0
core.nodefrag = 1
core.gen = 0
next_unlinked = null
u.symlink = "unix.7.gz"


Thanks,

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: can't remove dir
  2007-10-18 13:11       ` Louis-David Mitterrand
@ 2007-10-18 22:07         ` David Chinner
  2007-10-19 10:10           ` Louis-David Mitterrand
  0 siblings, 1 reply; 22+ messages in thread
From: David Chinner @ 2007-10-18 22:07 UTC (permalink / raw)
  To: linux-xfs

On Thu, Oct 18, 2007 at 03:11:16PM +0200, Louis-David Mitterrand wrote:
> On Thu, Oct 18, 2007 at 07:24:39AM +1000, David Chinner wrote:
> > On Wed, Oct 17, 2007 at 06:15:04PM +0200, Louis-David Mitterrand wrote:
> > > Using a 2.6.23 kernel and after a clean xfs_repair-2.9.4 run I can't 
> > > remove that file:
> > > 
> > > sylla:/# rm /lost+found/3912672557
> > > rm: cannot remove `/lost+found/3912672557': Operation not permitted
> > > 
> > > sylla:/# ls -li /lost+found/3912672557                                 
> > > 3912672557 lrwxrwxrwx 1 root root 9 2006-04-09 19:10 /lost+found/3912672557 -> unix.7.gz
> > 
> > Can you post the output of:
> > 
> > # xfs_db -r -c "inode 3912672557" -c "p" <device>
> 
> Here:
> 
> core.magic = 0x494e
> core.mode = 0120777
> core.version = 1
> core.format = 1 (local)
> core.nlinkv1 = 1
.....
> core.immutable = 1
  ^^^^^^^^^^^^^^^^^^

You can't remove this link until you remove the immutable flag.

# xfs_io -r -c "chattr -i" /lost+found/3912672557

as root should do the trick.

Cheers,

Dave.
-- 
Dave Chinner
Principal Engineer
SGI Australian Software Group

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: can't remove dir
  2007-10-18 22:07         ` David Chinner
@ 2007-10-19 10:10           ` Louis-David Mitterrand
  2007-10-21 23:50             ` David Chinner
  0 siblings, 1 reply; 22+ messages in thread
From: Louis-David Mitterrand @ 2007-10-19 10:10 UTC (permalink / raw)
  To: linux-xfs

On Fri, Oct 19, 2007 at 08:07:14AM +1000, David Chinner wrote:
> On Thu, Oct 18, 2007 at 03:11:16PM +0200, Louis-David Mitterrand wrote:
> > On Thu, Oct 18, 2007 at 07:24:39AM +1000, David Chinner wrote:
> > > On Wed, Oct 17, 2007 at 06:15:04PM +0200, Louis-David Mitterrand wrote:
> > > > Using a 2.6.23 kernel and after a clean xfs_repair-2.9.4 run I can't 
> > > > remove that file:
> > > > 
> > > > sylla:/# rm /lost+found/3912672557
> > > > rm: cannot remove `/lost+found/3912672557': Operation not permitted
> > > > 
> > > > sylla:/# ls -li /lost+found/3912672557                                 
> > > > 3912672557 lrwxrwxrwx 1 root root 9 2006-04-09 19:10 /lost+found/3912672557 -> unix.7.gz
> > > 
> > > Can you post the output of:
> > > 
> > > # xfs_db -r -c "inode 3912672557" -c "p" <device>
> > 
> > Here:
> > 
> > core.magic = 0x494e
> > core.mode = 0120777
> > core.version = 1
> > core.format = 1 (local)
> > core.nlinkv1 = 1
> .....
> > core.immutable = 1
>   ^^^^^^^^^^^^^^^^^^
> 
> You can't remove this link until you remove the immutable flag.
> 
> # xfs_io -r -c "chattr -i" /lost+found/3912672557

sylla:~# xfs_io -r -c "chattr -i" /lost+found/3912672557 
/lost+found/3912672557: No such file or directory

Tough cookie this one :)

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: can't remove dir
  2007-10-19 10:10           ` Louis-David Mitterrand
@ 2007-10-21 23:50             ` David Chinner
  2007-10-22  0:42               ` Barry Naujok
  2007-10-22  7:04               ` Louis-David Mitterrand
  0 siblings, 2 replies; 22+ messages in thread
From: David Chinner @ 2007-10-21 23:50 UTC (permalink / raw)
  To: linux-xfs

On Fri, Oct 19, 2007 at 12:10:08PM +0200, Louis-David Mitterrand wrote:
> On Fri, Oct 19, 2007 at 08:07:14AM +1000, David Chinner wrote:
> > On Thu, Oct 18, 2007 at 03:11:16PM +0200, Louis-David Mitterrand wrote:
> > > On Thu, Oct 18, 2007 at 07:24:39AM +1000, David Chinner wrote:
> > > > On Wed, Oct 17, 2007 at 06:15:04PM +0200, Louis-David Mitterrand wrote:
> > > > > Using a 2.6.23 kernel and after a clean xfs_repair-2.9.4 run I can't 
> > > > > remove that file:
> > > > > 
> > > > > sylla:/# rm /lost+found/3912672557
> > > > > rm: cannot remove `/lost+found/3912672557': Operation not permitted
> > > > > 
> > > > > sylla:/# ls -li /lost+found/3912672557                                 
> > > > > 3912672557 lrwxrwxrwx 1 root root 9 2006-04-09 19:10 /lost+found/3912672557 -> unix.7.gz
> > > > 
> > > > Can you post the output of:
> > > > 
> > > > # xfs_db -r -c "inode 3912672557" -c "p" <device>
> > > 
> > > Here:
> > > 
> > > core.magic = 0x494e
> > > core.mode = 0120777
> > > core.version = 1
> > > core.format = 1 (local)
> > > core.nlinkv1 = 1
> > .....
> > > core.immutable = 1
> >   ^^^^^^^^^^^^^^^^^^
> > 
> > You can't remove this link until you remove the immutable flag.
> > 
> > # xfs_io -r -c "chattr -i" /lost+found/3912672557
> 
> sylla:~# xfs_io -r -c "chattr -i" /lost+found/3912672557 
> /lost+found/3912672557: No such file or directory

Strange. This implies that lookup can't find inode # 3912672557.
We know it is there...

How many other files in the directory? Can you get the inode number
for the lost+found directory and dump that with xfs_db (as per above)?

Also, what happens if you "touch /lost+found/unix.7.gz" and try again?

Cheers,

Dave.
-- 
Dave Chinner
Principal Engineer
SGI Australian Software Group

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: can't remove dir
  2007-10-21 23:50             ` David Chinner
@ 2007-10-22  0:42               ` Barry Naujok
  2007-10-22  1:17                 ` David Chinner
  2007-10-22  7:04               ` Louis-David Mitterrand
  1 sibling, 1 reply; 22+ messages in thread
From: Barry Naujok @ 2007-10-22  0:42 UTC (permalink / raw)
  To: David Chinner, linux-xfs, Louis-David Mitterrand

On Mon, 22 Oct 2007 09:50:52 +1000, David Chinner <dgc@sgi.com> wrote:

> On Fri, Oct 19, 2007 at 12:10:08PM +0200, Louis-David Mitterrand wrote:
>> On Fri, Oct 19, 2007 at 08:07:14AM +1000, David Chinner wrote:
>> > On Thu, Oct 18, 2007 at 03:11:16PM +0200, Louis-David Mitterrand  
>> wrote:
>> > > On Thu, Oct 18, 2007 at 07:24:39AM +1000, David Chinner wrote:
>> > > > On Wed, Oct 17, 2007 at 06:15:04PM +0200, Louis-David Mitterrand  
>> wrote:
>> > > > > Using a 2.6.23 kernel and after a clean xfs_repair-2.9.4 run I  
>> can't
>> > > > > remove that file:
>> > > > >
>> > > > > sylla:/# rm /lost+found/3912672557
>> > > > > rm: cannot remove `/lost+found/3912672557': Operation not  
>> permitted
>> > > > >
>> > > > > sylla:/# ls -li /lost+found/3912672557
>> > > > > 3912672557 lrwxrwxrwx 1 root root 9 2006-04-09 19:10  
>> /lost+found/3912672557 -> unix.7.gz
>> > > >
>> > > > Can you post the output of:
>> > > >
>> > > > # xfs_db -r -c "inode 3912672557" -c "p" <device>
>> > >
>> > > Here:
>> > >
>> > > core.magic = 0x494e
>> > > core.mode = 0120777
>> > > core.version = 1
>> > > core.format = 1 (local)
>> > > core.nlinkv1 = 1
>> > .....
>> > > core.immutable = 1
>> >   ^^^^^^^^^^^^^^^^^^
>> >
>> > You can't remove this link until you remove the immutable flag.
>> >
>> > # xfs_io -r -c "chattr -i" /lost+found/3912672557
>>
>> sylla:~# xfs_io -r -c "chattr -i" /lost+found/3912672557
>> /lost+found/3912672557: No such file or directory
>
> Strange. This implies that lookup can't find inode # 3912672557.
> We know it is there...
>
> How many other files in the directory? Can you get the inode number
> for the lost+found directory and dump that with xfs_db (as per above)?
>
> Also, what happens if you "touch /lost+found/unix.7.gz" and try again?
>
> Cheers,
>
> Dave.

Being a symbolic link, xfs_io follows them rather than operates on
them directory.

This will probably require xfs_db magic with the unmounted filesystem:

# xfs_db -x -c "inode 3912672557" -c "write core.immutable 0" <device>

Barry.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: can't remove dir
  2007-10-22  0:42               ` Barry Naujok
@ 2007-10-22  1:17                 ` David Chinner
  0 siblings, 0 replies; 22+ messages in thread
From: David Chinner @ 2007-10-22  1:17 UTC (permalink / raw)
  To: Barry Naujok; +Cc: David Chinner, linux-xfs, Louis-David Mitterrand

On Mon, Oct 22, 2007 at 10:42:25AM +1000, Barry Naujok wrote:
> On Mon, 22 Oct 2007 09:50:52 +1000, David Chinner <dgc@sgi.com> wrote:
> >On Fri, Oct 19, 2007 at 12:10:08PM +0200, Louis-David Mitterrand wrote:
> >>sylla:~# xfs_io -r -c "chattr -i" /lost+found/3912672557
> >>/lost+found/3912672557: No such file or directory
> >
> >Strange. This implies that lookup can't find inode # 3912672557.
> >We know it is there...
> >
> >How many other files in the directory? Can you get the inode number
> >for the lost+found directory and dump that with xfs_db (as per above)?
> >
> >Also, what happens if you "touch /lost+found/unix.7.gz" and try again?
> 
> Being a symbolic link, xfs_io follows them rather than operates on
> them directory.

Actually, I tested that before posting. If the symlink is dangling,
then the symlink gets the attributes attached to it:

# ls -l /mnt/scratch/
total 0
lrwxrwxrwx 1 root root 22 Oct 22 11:09 foo -> /mnt/scratch/unix.7.gz
# ls -l /mnt/scratch/unix.7.gz
/bin/ls: /mnt/scratch/unix.7.gz: No such file or directory
# xfs_io -f -r -c "lsattr" /mnt/scratch/foo
-------------- /mnt/scratch/foo
# xfs_io -f -c "chattr +i" /mnt/scratch/foo
# xfs_io -f -r -c "lsattr" /mnt/scratch/foo
--i----------- /mnt/scratch/foo
# umount /mnt/scratch
# mount !$
mount /mnt/scratch
# xfs_io -f -r -c "lsattr" /mnt/scratch/foo
--i----------- /mnt/scratch/foo
# xfs_io -f -c "chattr -i" /mnt/scratch/foo -r
# xfs_io -f -r -c "lsattr" /mnt/scratch/foo
-------------- /mnt/scratch/foo
#

Cheers,

Dave.
-- 
Dave Chinner
Principal Engineer
SGI Australian Software Group

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: can't remove dir
  2007-10-21 23:50             ` David Chinner
  2007-10-22  0:42               ` Barry Naujok
@ 2007-10-22  7:04               ` Louis-David Mitterrand
  1 sibling, 0 replies; 22+ messages in thread
From: Louis-David Mitterrand @ 2007-10-22  7:04 UTC (permalink / raw)
  To: linux-xfs

On Mon, Oct 22, 2007 at 09:50:52AM +1000, David Chinner wrote:
> On Fri, Oct 19, 2007 at 12:10:08PM +0200, Louis-David Mitterrand wrote:
> > On Fri, Oct 19, 2007 at 08:07:14AM +1000, David Chinner wrote:
> > > On Thu, Oct 18, 2007 at 03:11:16PM +0200, Louis-David Mitterrand wrote:
> > > > On Thu, Oct 18, 2007 at 07:24:39AM +1000, David Chinner wrote:
> > > > > On Wed, Oct 17, 2007 at 06:15:04PM +0200, Louis-David Mitterrand wrote:
> > > > > > Using a 2.6.23 kernel and after a clean xfs_repair-2.9.4 run I can't 
> > > > > > remove that file:
> > > > > > 
> > > > > > sylla:/# rm /lost+found/3912672557
> > > > > > rm: cannot remove `/lost+found/3912672557': Operation not permitted
> > > > > > 
> > > > > > sylla:/# ls -li /lost+found/3912672557                                 
> > > > > > 3912672557 lrwxrwxrwx 1 root root 9 2006-04-09 19:10 /lost+found/3912672557 -> unix.7.gz
> > > > > 
> > > > > Can you post the output of:
> > > > > 
> > > > > # xfs_db -r -c "inode 3912672557" -c "p" <device>
> > > > 
> > > > Here:
> > > > 
> > > > core.magic = 0x494e
> > > > core.mode = 0120777
> > > > core.version = 1
> > > > core.format = 1 (local)
> > > > core.nlinkv1 = 1
> > > .....
> > > > core.immutable = 1
> > >   ^^^^^^^^^^^^^^^^^^
> > > 
> > > You can't remove this link until you remove the immutable flag.
> > > 
> > > # xfs_io -r -c "chattr -i" /lost+found/3912672557
> > 
> > sylla:~# xfs_io -r -c "chattr -i" /lost+found/3912672557 
> > /lost+found/3912672557: No such file or directory
> 
> Strange. This implies that lookup can't find inode # 3912672557.
> We know it is there...
> 
> How many other files in the directory? Can you get the inode number
> for the lost+found directory and dump that with xfs_db (as per above)?
> 
> Also, what happens if you "touch /lost+found/unix.7.gz" and try again?

sylla:/lost+found# touch /lost+found/unix.7.gz   

sylla:/lost+found# l
total 0
lrwxrwxrwx 1 root root 9 2006-04-09 19:10 3912672557 -> unix.7.gz
-rw-r--r-- 1 root root 0 2007-10-22 09:02 unix.7.gz

sylla:/lost+found# xfs_io -r -c "chattr -i" /lost+found/3912672557

sylla:/lost+found# rm 3912672557
rm: remove symbolic link `3912672557'? y
rm: cannot remove `3912672557': Operation not permitted

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2007-10-22  7:06 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-14  8:09 can't remove dir Louis-David Mitterrand
2007-09-14  8:38 ` [UNSURE] " Justin Piszcz
2007-09-14  8:41   ` Louis-David Mitterrand
2007-09-14  8:45     ` Justin Piszcz
2007-09-14  9:10     ` David Chinner
2007-09-14  9:27       ` Louis-David Mitterrand
2007-09-16 22:32         ` David Chinner
2007-09-18  2:43         ` Barry Naujok
2007-09-14 14:14 ` Eric Sandeen
2007-09-14 14:18   ` Eric Sandeen
2007-10-17 16:15   ` Louis-David Mitterrand
2007-10-17 16:18     ` Justin Piszcz
2007-10-17 16:30       ` Louis-David Mitterrand
2007-10-17 21:24     ` David Chinner
2007-10-18 13:11       ` Louis-David Mitterrand
2007-10-18 22:07         ` David Chinner
2007-10-19 10:10           ` Louis-David Mitterrand
2007-10-21 23:50             ` David Chinner
2007-10-22  0:42               ` Barry Naujok
2007-10-22  1:17                 ` David Chinner
2007-10-22  7:04               ` Louis-David Mitterrand
2007-10-18  1:37     ` Barry Naujok

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox