Subject: Re: linux-next: build failure after merge of the staging-next tree

From: [email-masked] (Eric W. Biederman)
Date: Sat, 01 May 2010 21:55:29 -0700

Greg KH <[email-masked]> writes:

> On Fri, Apr 30, 2010 at 03:52:05PM +1000, Stephen Rothwell wrote:
>> Hi Greg,
>> 
>> After merging the staging-next tree, today's linux-next build (x86_64
>> allmodconfig) failed like this:
>> 
>> drivers/md/md.c: In function 'level_store':
>> drivers/md/md.c:3029: error: too few arguments to function 'sysfs_get_dirent'
>> 
>> Caused by commit 262f8e4937e7b4a587923ca3c039a184668f49ec ("sysfs:
>> Implement sysfs tagged directory support") from the driver-core tree
>> interacting with commit fecc531e3cc0de60514d326c7d82f1075ed55888 ("md:
>> manage redundancy group in sysfs when changing level") from the md.
>> 
>> I have applied this fixup patch for today and can carry it as necessary.
>
> Thanks, that would be great.
>
>> [This could have been avoided, of course, by creating a new API (maybe
>> sysfs_get_dirent_tagged) and implementing the old API in terms of that].
>
> Hm Eric, any thoughts?

I believe I touched all of the users of sysfs_get_dirent outside of sysfs
that existed when I sent you the patch.

Right now using sysfs_get_dirent is a hack to support notifications of
changes to sysfs files from atomic contexts, where sysfs_notify is
unsafe because it sleeps on sysfs_mutex.  There are maybe 5 callers of
sysfs_get_dirent outside of sysfs.  Given that we have a nice compile
time error I don't think it makes sense to have multiple versions of the
function.

It will probably makes sense at some point to go through and push
everything to using a less hacky solution, but for the moment the
solution is correct and doesn't cause too much pain so I'm not too
worried about it.

As for the fixup patch itself it looked correct.

Eric