xfs
[Top] [All Lists]

Re: execute lvchange while mounting XFS filesystem

To: linux-xfs@xxxxxxxxxxx
Subject: Re: execute lvchange while mounting XFS filesystem
From: ASANO Masahiro <masano@xxxxxxxxxxxxxx>
Date: Mon, 05 Nov 2001 20:53:42 +0900 (JST)
In-reply-to: <20011001225331N.masano@xxxxxxxxxxxxxx>
References: <20011001225331N.masano@xxxxxxxxxxxxxx>
Sender: owner-linux-xfs@xxxxxxxxxxx
From: me
Date: Mon, 01 Oct 2001 22:53:31 +0900 (JST)
Message-ID: <20011001225331N.masano@xxxxxxxxxxxxxx>

> Hi,
> 
> I encountered an oops and you can reproduce it with the following
> operations:
> 
>   # lvcreate -L 32m -n masano1 /dev/vg0
>   # mkfs.xfs /dev/vg0/masano1
>   # mount /dev/vg0/masano1 /mnt/masano1
>   # lvchange -p r /dev/vg0/masano1
>   # touch /mnt/masano1/dummy
>   # sync
> 
> I think that these operations may have no special meaning, however,
> it seems that there is an issue in the error handling of writing
> log operation.
> 
> I looked into XFS kernel sources but I could not find what led to this
> oops. 

I found that this oops occurred because of a linkage of buffer_head
lru/free list was broken.

The I/O completion routine for pagebuf I/O such as
_end_pagebuf_page_io() free the buffer_head with kmem_cache_free().
But when I/O error is detected in LVM by above operations, the
buffer_head is listed into lru/free list by buffer_IO_error().
The lru/free list is broken when the freed buffer_head is reallocated
and reused.
Which is rough in manner, calling kmem_cache_free() or calling
buffer_IO_error()?

> Thanks in advance,
--
masano


<Prev in Thread] Current Thread [Next in Thread>
  • Re: execute lvchange while mounting XFS filesystem, ASANO Masahiro <=