Re: [PATCH 0/25] Sysfs cleanups & tagged directory support

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Cornelia Huck
Date: Wednesday, August 8, 2007 - 7:16 am

On Wed, 8 Aug 2007 10:37:59 +0200,
Cornelia Huck <cornelia.huck@de.ibm.com> wrote:


OK, it seems that it is udevstart that has problems. (Normal udev
operation seems fine; when I trigger uevents manually, the device nodes
are created.)

I ran strace on udevstart and found that it skipped
/sys/block/dasd/dasda1 (interestingly, /dev/dasda was created after I
ran udevstart manually; no idea why this didn't happen on boot. Further
manual runs don't create /dev/dasda1, however.) ls doesn't produce
different output on the two kernels.

Here is some excerpt from the strace run with the broken kernel:

open("/sys/block", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
getdents64(3, /* 28 entries */, 4096)   = 800
_llseek(3, 3414, [3414], SEEK_SET)      = 0
stat64("/sys/block/dasda/dev", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
open("/sys/block/dasda", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
fstat64(4, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
fcntl64(4, F_SETFD, FD_CLOEXEC)         = 0
getdents64(4, /* 15 entries */, 4096)   = 440
_llseek(4, 3079, [3079], SEEK_SET)      = 0
stat64("/sys/block/dasda/uevent/dev", 0x7fb8c3f8) = -1 ENOTDIR (Not a directory)
stat64("/sys/block/dasda/dev/dev", 0x7fb8c3f8) = -1 ENOTDIR (Not a directory)
stat64("/sys/block/dasda/range/dev", 0x7fb8c3f8) = -1 ENOTDIR (Not a directory)
stat64("/sys/block/dasda/removable/dev", 0x7fb8c3f8) = -1 ENOTDIR (Not a directory)
stat64("/sys/block/dasda/size/dev", 0x7fb8c3f8) = -1 ENOTDIR (Not a directory)
stat64("/sys/block/dasda/stat/dev", 0x7fb8c3f8) = -1 ENOTDIR (Not a directory)
stat64("/sys/block/dasda/capability/dev", 0x7fb8c3f8) = -1 ENOTDIR (Not a directory)
stat64("/sys/block/dasda/device/dev", 0x7fb8c3f8) = -1 ENOENT (No such file or d irectory)
stat64("/sys/block/dasda/subsystem/dev", 0x7fb8c3f8) = -1 ENOENT (No such file or directory)
stat64("/sys/block/dasda/holders/dev", 0x7fb8c3f8) = -1 ENOENT (No such file or directory)
stat64("/sys/block/dasda/slaves/dev", 0x7fb8c3f8) = -1 ENOENT (No such file or directory)
stat64("/sys/block/dasda/queue/dev", 0x7fb8c3f8) = -1 ENOENT (No such file or directory)
getdents64(4, /* 1 entries */, 4096)    = 32
close(4)                                = 0
getdents64(3, /* 1 entries */, 4096)    = 32
close(3)                                = 0
lstat64("/sys/block/dasda", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat64("/sys/block/dasda/dev", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
stat64("/sys/block/dasda/dev", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
open("/sys/block/dasda/dev", O_RDONLY)  = 3
read(3, "94:0\n", 4096)                 = 5
close(3)                                = 0
lstat64("/sys/block/dasda/device", {st_mode=S_IFLNK|0777, st_size=0, ...}) = 0
readlink("/sys/block/dasda/device", "../../devices/css0/0.0.0003/0.0.4e30", 256) = 36
lstat64("/sys/devices/css0/0.0.0003/0.0.4e30", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat64("/sys/devices/css0/0.0.0003/0.0.4e30/bus", {st_mode=S_IFLNK|0777, st_siz e=0, ...}) = 0
readlink("/sys/devices/css0/0.0.0003/0.0.4e30/bus", "../../../../bus/ccw", 256) = 19
lstat64("/sys/devices/css0/0.0.0003/0.0.4e30/driver", {st_mode=S_IFLNK|0777, st_ size=0, ...}) = 0
readlink("/sys/devices/css0/0.0.0003/0.0.4e30/driver", "../../../../bus/ccw/driv ers/dasd-eckd", 256) = 37
open("/proc/filesystems", O_RDONLY|O_LARGEFILE) = 3
read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tb"..., 4095) = 259
close(3)                                = 0
stat64("/dev/dasda", 0x7fb8b738)        = -1 ENOENT (No such file or directory)
mknod("/dev/dasda", S_IFBLK|0640, makedev(94, 0)) = 0
chmod("/dev/dasda", 060640)             = 0
chown("/dev/dasda", 0, 6)               = 0


And here's with a working kernel:

open("/sys/block", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
getdents64(3, /* 27 entries */, 4096)   = 768
stat64("/sys/block/dasda/dev", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
open("/sys/block/dasda", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
fstat64(4, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
fcntl64(4, F_SETFD, FD_CLOEXEC)         = 0
getdents64(4, /* 15 entries */, 4096)   = 440
stat64("/sys/block/dasda/dasda1/dev", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
stat64("/sys/block/dasda/queue/dev", 0x7f9004f8) = -1 ENOENT (No such file or directory)
stat64("/sys/block/dasda/slaves/dev", 0x7f9004f8) = -1 ENOENT (No such file or directory)
stat64("/sys/block/dasda/holders/dev", 0x7f9004f8) = -1 ENOENT (No such file or directory)
stat64("/sys/block/dasda/subsystem/dev", 0x7f9004f8) = -1 ENOENT (No such file or directory)
stat64("/sys/block/dasda/device/dev", 0x7f9004f8) = -1 ENOENT (No such file or directory)
stat64("/sys/block/dasda/capability/dev", 0x7f9004f8) = -1 ENOTDIR (Not a directory)
stat64("/sys/block/dasda/stat/dev", 0x7f9004f8) = -1 ENOTDIR (Not a  directory)
stat64("/sys/block/dasda/size/dev", 0x7f9004f8) = -1 ENOTDIR (Not a directory)
stat64("/sys/block/dasda/removable/dev", 0x7f9004f8) = -1 ENOTDIR (Not a directory)
stat64("/sys/block/dasda/range/dev", 0x7f9004f8) = -1 ENOTDIR (Not a directory)
stat64("/sys/block/dasda/dev/dev", 0x7f9004f8) = -1 ENOTDIR (Not a directory)
stat64("/sys/block/dasda/uevent/dev", 0x7f9004f8) = -1 ENOTDIR (Not a directory)
getdents64(4, /* 0 entries */, 4096)    = 0
close(4)                                = 0
...
lstat64("/sys/block/dasda", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat64("/sys/block/dasda/dev", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
stat64("/sys/block/dasda/dev", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
open("/sys/block/dasda/dev", O_RDONLY)  = 3
read(3, "94:0\n", 4096)                 = 5
close(3)                                = 0
lstat64("/sys/block/dasda/device", {st_mode=S_IFLNK|0777, st_size=0, ...}) = 0
readlink("/sys/block/dasda/device", "../../devices/css0/0.0.0003/0.0.4e30", 256) = 36
lstat64("/sys/devices/css0/0.0.0003/0.0.4e30", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat64("/sys/devices/css0/0.0.0003/0.0.4e30/bus", {st_mode=S_IFLNK|0777, st_size=0, ...}) = 0
readlink("/sys/devices/css0/0.0.0003/0.0.4e30/bus", "../../../../bus/ccw", 256) = 19
lstat64("/sys/devices/css0/0.0.0003/0.0.4e30/driver", {st_mode=S_IFLNK|0777, st_size=0, ...}) = 0
readlink("/sys/devices/css0/0.0.0003/0.0.4e30/driver", "../../../../bus/ccw/drivers/dasd-eckd", 256) = 37
open("/proc/filesystems", O_RDONLY|O_LARGEFILE) = 3
read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tb"..., 4095) = 276
close(3)                                = 0
stat64("/dev/dasda", {st_mode=S_IFBLK|0640, st_rdev=makedev(94, 0), ...}) = 0
chmod("/dev/dasda", 060640)             = 0
chown("/dev/dasda", 0, 6)               = 0
...
lstat64("/sys/block/dasda/dasda1", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat64("/sys/block/dasda/dasda1/dev", {st_mode=S_IFREG|0444, st_size=4096, ...} ) = 0
stat64("/sys/block/dasda/dasda1/dev", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
open("/sys/block/dasda/dasda1/dev", O_RDONLY) = 3
read(3, "94:1\n", 4096)                 = 5
close(3)                                = 0
lstat64("/sys/block/dasda", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat64("/sys/block/dasda/device", {st_mode=S_IFLNK|0777, st_size=0, ...}) = 0
readlink("/sys/block/dasda/device", "../../devices/css0/0.0.0003/0.0.4e30", 256) = 36
lstat64("/sys/devices/css0/0.0.0003/0.0.4e30", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat64("/sys/devices/css0/0.0.0003/0.0.4e30/bus", {st_mode=S_IFLNK|0777, st_size=0, ...}) = 0
readlink("/sys/devices/css0/0.0.0003/0.0.4e30/bus", "../../../../bus/ccw", 256) = 19
lstat64("/sys/devices/css0/0.0.0003/0.0.4e30/driver", {st_mode=S_IFLNK|0777, st_ size=0, ...}) = 0
readlink("/sys/devices/css0/0.0.0003/0.0.4e30/driver", "../../../../bus/ccw/drivers/dasd-eckd", 256) = 37
stat64("/dev/dasda1", {st_mode=S_IFBLK|0640, st_rdev=makedev(94, 1), ...}) = 0
chmod("/dev/dasda1", 060640)            = 0
chown("/dev/dasda1", 0, 6)              = 0

Ideas welcome...
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 2/5] sysfs: simplify sysfs_rename_dir(), Tejun Heo, (Thu Aug 2, 5:38 am)
[PATCH 0/25] Sysfs cleanups &amp; tagged directory support, Eric W. Biederman, (Tue Aug 7, 2:06 pm)
[PATCH 02/25] sysfs: Remove sysfs_instantiate, Eric W. Biederman, (Tue Aug 7, 2:08 pm)
[PATCH 03/25] sysfs: Use kill_anon_super, Eric W. Biederman, (Tue Aug 7, 2:10 pm)
[PATCH 04/25] sysfs: Make sysfs_mount static, Eric W. Biederman, (Tue Aug 7, 2:11 pm)
[PATCH 06/25] sysfs: Simplify readdir., Eric W. Biederman, (Tue Aug 7, 2:13 pm)
[PATCH 07/25] sysfs: Rewrite sysfs_drop_dentry., Eric W. Biederman, (Tue Aug 7, 2:14 pm)
[PATCH 08/25] sysfs: Implement __sysfs_get_dentry, Eric W. Biederman, (Tue Aug 7, 2:16 pm)
[PATCH 10/25] sysfs: Rewrite sysfs_get_dentry in terms of ..., Eric W. Biederman, (Tue Aug 7, 2:18 pm)
[PATCH 11/25] sysfs: Remove s_dentry, Eric W. Biederman, (Tue Aug 7, 2:19 pm)
[PATCH 12/25] sysfs: Introduce sysfs_rename_mutex, Eric W. Biederman, (Tue Aug 7, 2:21 pm)
[PATCH 13/25] sysfs: Simply sysfs_get_dentry, Eric W. Biederman, (Tue Aug 7, 2:22 pm)
[PATCH 14/25] sysfs: Don't use lookup_one_len_kern, Eric W. Biederman, (Tue Aug 7, 2:23 pm)
[PATCH 15/25] vfs: Remove lookup_one_len_kern, Eric W. Biederman, (Tue Aug 7, 2:25 pm)
[PATCH 16/25] sysfs: Support for preventing unmounts., Eric W. Biederman, (Tue Aug 7, 2:26 pm)
[PATCH 17/25] sysfs: Rewrite rename in terms of sysfs dirents, Eric W. Biederman, (Tue Aug 7, 2:27 pm)
[PATCH 19/25] sysfs: sysfs_get_dentry add a sb parameter, Eric W. Biederman, (Tue Aug 7, 2:29 pm)
[PATCH 20/25] sysfs: Rename Support multiple superblocks, Eric W. Biederman, (Tue Aug 7, 2:31 pm)
Re: [PATCH 02/25] sysfs: Remove sysfs_instantiate, Tejun Heo, (Tue Aug 7, 11:37 pm)
Re: [PATCH 03/25] sysfs: Use kill_anon_super, Tejun Heo, (Tue Aug 7, 11:50 pm)
Re: [PATCH 04/25] sysfs: Make sysfs_mount static, Tejun Heo, (Tue Aug 7, 11:51 pm)
Re: [PATCH 06/25] sysfs: Simplify readdir., Tejun Heo, (Wed Aug 8, 12:12 am)
Re: [PATCH 07/25] sysfs: Rewrite sysfs_drop_dentry., Tejun Heo, (Wed Aug 8, 12:35 am)
Re: [PATCH 11/25] sysfs: Remove s_dentry, Tejun Heo, (Wed Aug 8, 12:46 am)
Re: [PATCH 0/25] Sysfs cleanups &amp; tagged directory support, Eric W. Biederman, (Wed Aug 8, 12:47 am)
Re: [PATCH 0/25] Sysfs cleanups &amp; tagged directory support, Eric W. Biederman, (Wed Aug 8, 12:57 am)
Re: [PATCH 13/25] sysfs: Simply sysfs_get_dentry, Tejun Heo, (Wed Aug 8, 1:24 am)
Re: [PATCH 12/25] sysfs: Introduce sysfs_rename_mutex, Eric W. Biederman, (Wed Aug 8, 1:28 am)
Re: [PATCH 15/25] vfs: Remove lookup_one_len_kern, Tejun Heo, (Wed Aug 8, 1:39 am)
Re: [PATCH 0/25] Sysfs cleanups & tagged directory support, Cornelia Huck, (Wed Aug 8, 7:16 am)
Re: [PATCH 14/25] sysfs: Don't use lookup_one_len_kern, Eric W. Biederman, (Wed Aug 8, 8:26 am)
Re: [PATCH 17/25] sysfs: Rewrite rename in terms of sysfs ..., Eric W. Biederman, (Wed Aug 8, 8:32 am)
Re: [PATCH 19/25] sysfs: sysfs_get_dentry add a sb parameter, Eric W. Biederman, (Wed Aug 8, 8:34 am)
Re: [PATCH 20/25] sysfs: Rename Support multiple superblocks, Eric W. Biederman, (Wed Aug 8, 8:45 am)
Re: alternative approached at tagged nodes, Tejun Heo, (Wed Aug 8, 9:31 am)
Re: [PATCH 20/25] sysfs: Rename Support multiple superblocks, Eric W. Biederman, (Wed Aug 8, 9:35 am)
Re: [PATCH 20/25] sysfs: Rename Support multiple superblocks, Eric W. Biederman, (Wed Aug 8, 9:55 am)