[dm-devel] Re: [PATCH 4/7] dm/md dependency tree in sysfs: bd_claim_by_disk

Andrew Morton akpm at osdl.org
Tue Mar 14 02:29:43 UTC 2006


"Jun'ichi Nomura" <j-nomura at ce.jp.nec.com> wrote:
>
>  Variants of bd_claim_by_kobject which takes gendisk instead
>  of kobject and do kobject_{get,put}(&gendisk->slave_dir).
> 
>  Signed-off-by: Jun'ichi Nomura <j-nomura at ce.jp.nec.com>
> 
>   include/linux/genhd.h |   13 +++++++++++++
>   1 files changed, 13 insertions(+)
> 
>  --- linux-2.6.16-rc6.orig/include/linux/genhd.h	2006-03-11 17:12:55.000000000 -0500
>  +++ linux-2.6.16-rc6/include/linux/genhd.h	2006-03-13 11:24:13.000000000 -0500
>  @@ -421,6 +424,19 @@ static inline struct block_device *bdget
>   	return bdget(MKDEV(disk->major, disk->first_minor) + index);
>   }
>   
>  +static inline int bd_claim_by_disk(struct block_device *bdev,
>  +					void *holder, struct gendisk *disk)
>  +{
>  +	return bd_claim_by_kobject(bdev, holder, kobject_get(disk->slave_dir));
>  +}
>  +
>  +static inline void bd_release_from_disk(struct block_device *bdev,
>  +					struct gendisk *disk)
>  +{
>  +	bd_release_from_kobject(bdev, disk->slave_dir);
>  +	kobject_put(disk->slave_dir);
>  +}
>  +

genhd.h doesn't include kobject.h, so this only compiles due to luck.

An alternative to adding possibly risky nested header inclusions would be
to uninline these functions.




More information about the dm-devel mailing list