bug-hurd
[Top][All Lists]
Advanced

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

Re: [linux 2.6 patch] ext2 support for hurd extensions via xattr interfa


From: Michael Banck
Subject: Re: [linux 2.6 patch] ext2 support for hurd extensions via xattr interface
Date: Fri, 27 Feb 2004 22:22:27 +0100
User-agent: Mutt/1.5.5.1+cvs20040105i

On Thu, Feb 26, 2004 at 07:55:25PM -0500, Roland McGrath wrote:
> > Just curious, would it not make sense to have this for ext3, too? After
> > all, one can mount ext3 filesystems as ext2 on GNU/Hurd (AFAIK), 
> 
> As I understand it, it is true that an ext3 filesystem with its journal
> files fully replayed or whatnot that constitutes "fully clean" state, is a
> valid ext2 filesystem.  So to that extent, yes.  However, note that this
> code is specifically for ext2 filesystems with "creator os" set to "hurd".

For the record, it is possible to create an ext3 file system with '-o
hurd', mount it as ext2 and then benefit from CONFIG_EXT2_FS_XATTR_HURD.

> > I tried using star, but I get errors when I try to extract /gnu/servers.
> > I am not sure whether this is expected to work at all, though, as I get
> > EOPNOTSUPP.
> 
> Did you compile with CONFIG_EXT2_FS_XATTR_HURD=y?
> Is the filesystem in question an ext2 filesystem with creator `hurd'?
> If you created it on GNU/Linux and didn't use `mke2fs -o hurd', then the
> answer is no.

Uhm, d'oh. I haven't read your original post for a while and somehow
assumed your patch would make '-o hurd' unimportant. Mea culpa.

As I said above, I created an ext3fs with -o hurd, mounted it as ext2
and extracted the servers/ tarball. This seems to go well, no errors
are reported by star.

However, there are three types of issues: 

1.) Quite often (seemingly random) a bogus gnu.author gets displayed by
getfattr:

blackbird/mnt$ getfattr -Rh -d -m '.*' gnu/servers
# file: gnu/servers/socket
gnu.author=0shgAAAA==

# file: gnu/servers/socket/1
gnu.translator="/hurd/pflocal\000"
[...]

That does not happen all the time, and different files get affected. It
also happened when I extracted servers/ somewhere on my /gnu-partition.

2.) Sometimes, I/O errors get reported. They seem to be coupled to star,
as every invocation of getfattr yields the same error for a set of
extracted translators.

blackbird/mnt$ getfattr -Rh -d -m '.*' gnu1/servers
# file: gnu1/servers
gnu.author=0sAQAAAA==
gnu.translator

# file: gnu1/servers/socket
gnu.author=0sAwQHCA==
gnu1/servers/socket: gnu.translator: Input/output error

# file: gnu1/servers/socket/1
gnu.author="defa"
gnu1/servers/socket/1: gnu.translator: Input/output error
[...]

Such an I/O error gets marked in the syslog as
Feb 27 21:51:17 blackbird kernel: hda5: rw=0, want=2061425788, limit=196497
Feb 27 21:51:48 blackbird kernel: attempt to access beyond end of device

(sometimes, just one or two I/O errors occur. Sometimes, all of the
files yield them)

3.) With enough patience (well, it only took a couple of attempts,
really), I got star hanging (i.e. kill -9 does not work), and trying an
getfattr on the already extracted files from a new shell also got that
hanging.

This is from syslog:

Feb 27 12:00:56 blackbird kernel: buffer layer error at fs/buffer.c:430
Feb 27 12:00:56 blackbird kernel: Call Trace:
Feb 27 12:00:56 blackbird kernel:  [__find_get_block_slow+176/352] 
__find_get_block_slow+0xb0/0x160
Feb 27 12:00:56 blackbird kernel:  [__find_get_block+161/272] 
__find_get_block+0xa1/0x110
Feb 27 12:00:56 blackbird kernel:  [__getblk_slow+56/272] 
__getblk_slow+0x38/0x110
Feb 27 12:00:56 blackbird kernel:  [__getblk+99/112] __getblk+0x63/0x70
Feb 27 12:00:56 blackbird kernel:  [__crc_in_egroup_p+425985/1634005] 
compat_hurd_set+0x1d6/0x310 [ext2]
Feb 27 12:00:56 blackbird kernel:  [try_to_wake_up+169/352] 
try_to_wake_up+0xa9/0x160
Feb 27 12:00:56 blackbird kernel:  [__crc_in_egroup_p+426874/1634005] 
ext2_xattr_hurd_set+0x11f/0x141 [ext2]
Feb 27 12:00:56 blackbird kernel:  [__crc_in_egroup_p+413147/1634005] 
ext2_setxattr+0x0/0x70 [ext2]
Feb 27 12:00:56 blackbird kernel:  [__crc_in_egroup_p+413238/1634005] 
ext2_setxattr+0x5b/0x70 [ext2]
Feb 27 12:00:56 blackbird kernel:  [setxattr+389/496] setxattr+0x185/0x1f0
Feb 27 12:00:56 blackbird kernel:  [dput+49/544] dput+0x31/0x220
Feb 27 12:00:56 blackbird kernel:  [dput+49/544] dput+0x31/0x220
Feb 27 12:00:56 blackbird kernel:  [link_path_walk+1534/2304] 
link_path_walk+0x5fe/0x900
Feb 27 12:00:56 blackbird kernel:  [__user_walk+92/96] __user_walk+0x5c/0x60
Feb 27 12:00:56 blackbird kernel:  [sys_setxattr+95/112] sys_setxattr+0x5f/0x70
Feb 27 12:00:56 blackbird kernel:  [syscall_call+7/11] syscall_call+0x7/0xb
Feb 27 12:00:56 blackbird kernel: 
Feb 27 12:00:56 blackbird kernel: block=3221224218, 
b_blocknr=18446744072635808536
Feb 27 12:00:56 blackbird kernel: b_state=0x00000010, b_size=1024

While the call trace was written about a dozen times, the last two lines were
repeated until /var was full.

I hope this information is somewhat useful, just tell me what I should
do else.


cheers,

Michael




reply via email to

[Prev in Thread] Current Thread [Next in Thread]