[PATCHSET] sysfs: sysfs rework, take #2

From: Tejun Heo
Date: Sat Apr 28 2007 - 09:46:51 EST


Subject: [PATCHSET] sysfs: sysfs rework, take #2

Hello, all.

This is respin of syswork rework patchset in gregkh patch series.
Changes are...

* ida implemented and used to allocate sysfs_dirent inode numbers
instead of using pointer values which caused problems on certain
configurations including 32bit userland on 64bit kernel.

* reordered patches a bit such that minor updates added later are now
in the front of the patchset.

* 09-sysfs-flatten-and-fix-sysfs_rename_dir-error_handling added.

* 12-sysfs-add-sysfs_dirent-s_name now updates syfs_rename_dir() such
that the renaming is reflected in sd->s_name. This fixes netif
rename problem.

* lockdep annotation updated to handle sysfs nodes deleting other
nodes properlyand merged into 17-sysfs-implement-sysfs_dirent-
active-references-and-immediate-disconnect

* patches which fix fallouts of kill-attr-owner conversion were added
19-sysfs-kill-unnecessary-attribute-owner. Source tree is scanned
with grep and brace matching perl script and more fallouts have been
converted.

* reimplement-sysfs_drop_dentry() patches are completely redone. This
was necessary because there was no way to look up the dentry
matching a sysfs_dirent for shadow directories, not without getting
the hands all dirty with dcache internals. Please read descriptions
of patch #20 and 21 for more info. This fixes two races conditions
around sysfs dentry/inode reclamation which triggers BUG_ON().

All the known regrssions are fixed. I think I've got all the
attr->owner but haven't verified with cross compiling yet, just
allyesconfig on x86-64 and i386. I'll try to setup some cross compile
environments tomorrow and follow up if I can find more fallouts.

The patches are against Linus's master branch of the day -
b9099ff63c75216d6ca10bce5a1abcd9293c27e6

Thanks.

--
tejun


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/