Greg's commit c60b71787982cefcf9fa09aa281fa8c4c685d557 inadvertantly broke Ocfs2 userspace ABI, so I have a rather high priority single line patch from Joel to fix things up for you to pull. A copy of the patch is attached to the bottom of this e-mail. Embarassingly enough, I missed this while acking the patch late last week :( Please pull from 'upstream-linus' branch of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2.git upstream-linus to receive the following updates: fs/ocfs2/cluster/sys.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Joel Becker (1): ocfs2: Fix userspace ABI breakage in sysfs From: Joel Becker <Joel.Becker@oracle.com> ocfs2: Fix userspace ABI breakage in sysfs The userspace ABI of ocfs2's internal cluster stack (o2cb) was broken by commit c60b71787982cefcf9fa09aa281fa8c4c685d557 "kset: convert ocfs2 to use kset_create". Specifically, the '/sys/o2cb' kset was moved to '/sys/fs/o2cb'. This breaks all ocfs2 tools and renders the filesystem unmountable. This fix moves '/sys/o2cb' back where it belongs. Signed-off-by: Joel Becker <joel.becker@oracle.com> Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com> --- fs/ocfs2/cluster/sys.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/fs/ocfs2/cluster/sys.c b/fs/ocfs2/cluster/sys.c index a4b0773..0c095ce 100644 --- a/fs/ocfs2/cluster/sys.c +++ b/fs/ocfs2/cluster/sys.c @@ -64,7 +64,7 @@ int o2cb_sys_init(void) { int ret; - o2cb_kset = kset_create_and_add("o2cb", NULL, fs_kobj); + o2cb_kset = kset_create_and_add("o2cb", NULL, NULL); if (!o2cb_kset) return -ENOMEM; -- 1.5.3.6
On Mon, Jan 28, 2008 at 09:08:04PM -0800, Greg KH wrote:> > Joel Becker (1): > > ocfs2: Fix userspace ABI breakage in sysfs > > This is fine with me, for now.Great, thanks.> > From: Joel Becker <Joel.Becker@oracle.com> > > > > ocfs2: Fix userspace ABI breakage in sysfs > > > > The userspace ABI of ocfs2's internal cluster stack (o2cb) was broken by > > commit c60b71787982cefcf9fa09aa281fa8c4c685d557 "kset: convert ocfs2 to > > use kset_create". Specifically, the '/sys/o2cb' kset was moved to > > '/sys/fs/o2cb'. This breaks all ocfs2 tools and renders the > > filesystem unmountable. > > > > This fix moves '/sys/o2cb' back where it belongs. > > "belongs" is pretty odd here. This is a filesystem specific thing, > right? Why not put it in /sys/fs/ then?We had it there before /sys/fs and as has been noted, it's ABI so we can't change it right away. In theory, it's actually outside the fs, but in reality it's pretty tied to Ocfs2, so I have no objection to the idea of it being eventually moved there.> And yes, I understand about legacy userspace tools, that's why I have no > objection to it going back. But you can put it in both places (with a > symlink) and change your userspace code, and in a year or so, drop the > symlink, right?Yeah, that sounds entirely reasonable. It shouldn't be too hard for us to fix up ocfs2-tools to look in both places. So long as there's enough lead time for users to upgrade their toolchain (we can do releases for all branches of ocfs2-tools, make annoucements on lists, etc), I think the impact shouldn't be too bad.> And please please please please document stuff like this, and all of the > different files you have in this subdirectory in Documentation/ABI/ so > those of us who are trying to figure out the code (and there's still > parts of the kobject usage I'm pretty sure is not correct) can have a > chance to understand exactly how this stuff is being used and expected > to work.No problem. I'll get us some patches to symlink things, and add docs in Documentation/ABI/ explaining how Ocfs2 and userspace communicate. In the future, as we add ABI it'll be documented there. --Mark -- Mark Fasheh Principal Software Developer, Oracle mark.fasheh@oracle.com
On Mon, Jan 28, 2008 at 09:08:04PM -0800, Greg KH wrote:> And please please please please document stuff like this, and all of the > different files you have in this subdirectory in Documentation/ABI/ soHuh, I didn't know Documentation/ABI existed. That would certainly help in the future.> those of us who are trying to figure out the code (and there's still > parts of the kobject usage I'm pretty sure is not correct) can have aocfs2 kobject usage, or other folks'? If there's anything in the ocfs2 usage that you are unsure of, feel free to ask! Joel -- "Also, all of life's big problems include the words 'indictment' or 'inoperable.' Everything else is small stuff." - Alton Brown Joel Becker Principal Software Developer Oracle E-mail: joel.becker@oracle.com Phone: (650) 506-8127
On Mon, Jan 28, 2008 at 07:33:07PM -0800, Mark Fasheh wrote:> Greg's commit c60b71787982cefcf9fa09aa281fa8c4c685d557 inadvertantly broke > Ocfs2 userspace ABI, so I have a rather high priority single line patch from > Joel to fix things up for you to pull. A copy of the patch is attached to > the bottom of this e-mail. Embarassingly enough, I missed this while acking > the patch late last week :( > > Please pull from 'upstream-linus' branch of > git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2.git upstream-linus > > to receive the following updates: > > fs/ocfs2/cluster/sys.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > Joel Becker (1): > ocfs2: Fix userspace ABI breakage in sysfsThis is fine with me, for now.> From: Joel Becker <Joel.Becker at oracle.com> > > ocfs2: Fix userspace ABI breakage in sysfs > > The userspace ABI of ocfs2's internal cluster stack (o2cb) was broken by > commit c60b71787982cefcf9fa09aa281fa8c4c685d557 "kset: convert ocfs2 to > use kset_create". Specifically, the '/sys/o2cb' kset was moved to > '/sys/fs/o2cb'. This breaks all ocfs2 tools and renders the > filesystem unmountable. > > This fix moves '/sys/o2cb' back where it belongs."belongs" is pretty odd here. This is a filesystem specific thing, right? Why not put it in /sys/fs/ then? And yes, I understand about legacy userspace tools, that's why I have no objection to it going back. But you can put it in both places (with a symlink) and change your userspace code, and in a year or so, drop the symlink, right? And please please please please document stuff like this, and all of the different files you have in this subdirectory in Documentation/ABI/ so those of us who are trying to figure out the code (and there's still parts of the kobject usage I'm pretty sure is not correct) can have a chance to understand exactly how this stuff is being used and expected to work. thanks, greg k-h