diff -NurpP linux-2.6.16-rc2-vs2.1.1-rc3.2/fs/block_dev.c linux-2.6.16-rc2-vs2.1.x-claim/fs/block_dev.c --- linux-2.6.16-rc2-vs2.1.1-rc3.2/fs/block_dev.c 2006-02-07 11:52:58 +0100 +++ linux-2.6.16-rc2-vs2.1.x-claim/fs/block_dev.c 2006-02-17 20:14:54 +0100 @@ -443,7 +443,7 @@ void bd_forget(struct inode *inode) spin_unlock(&bdev_lock); } -int bd_claim(struct block_device *bdev, void *holder) +int __bd_claim(struct block_device *bdev, void *holder) { int res; spin_lock(&bdev_lock); @@ -456,7 +456,7 @@ int bd_claim(struct block_device *bdev, else if (bdev->bd_contains == bdev) res = 0; /* is a whole device which isn't held */ - else if (bdev->bd_contains->bd_holder == bd_claim) + else if (bdev->bd_contains->bd_holder == __bd_claim) res = 0; /* is a partition of a device that is being partitioned */ else if (bdev->bd_contains->bd_holder != NULL) res = -EBUSY; /* is a partition of a held device */ @@ -470,7 +470,7 @@ int bd_claim(struct block_device *bdev, * be set to bd_claim before being set to holder */ bdev->bd_contains->bd_holders ++; - bdev->bd_contains->bd_holder = bd_claim; + bdev->bd_contains->bd_holder = __bd_claim; bdev->bd_holders++; bdev->bd_holder = holder; } @@ -478,9 +478,9 @@ int bd_claim(struct block_device *bdev, return res; } -EXPORT_SYMBOL(bd_claim); +EXPORT_SYMBOL(__bd_claim); -void bd_release(struct block_device *bdev) +void __bd_release(struct block_device *bdev) { spin_lock(&bdev_lock); if (!--bdev->bd_contains->bd_holders) @@ -490,7 +490,7 @@ void bd_release(struct block_device *bde spin_unlock(&bdev_lock); } -EXPORT_SYMBOL(bd_release); +EXPORT_SYMBOL(__bd_release); /* * Tries to open block device by device number. Use it ONLY if you diff -NurpP linux-2.6.16-rc2-vs2.1.1-rc3.2/include/linux/fs.h linux-2.6.16-rc2-vs2.1.x-claim/include/linux/fs.h --- linux-2.6.16-rc2-vs2.1.1-rc3.2/include/linux/fs.h 2006-02-12 14:25:27 +0100 +++ linux-2.6.16-rc2-vs2.1.x-claim/include/linux/fs.h 2006-02-17 20:03:05 +0100 @@ -1400,8 +1400,17 @@ extern int blkdev_ioctl(struct inode *, extern long compat_blkdev_ioctl(struct file *, unsigned, unsigned long); extern int blkdev_get(struct block_device *, mode_t, unsigned); extern int blkdev_put(struct block_device *); -extern int bd_claim(struct block_device *, void *); -extern void bd_release(struct block_device *); +extern int __bd_claim(struct block_device *, void *); +#define bd_claim(a,b) ({ \ + printk("bd_claim: %p %p @%s:%d\n", a, b, __FILE__, __LINE__); \ + __bd_claim(a,b); \ + }) + +extern void __bd_release(struct block_device *); +#define bd_release(a) ({ \ + printk("bd_release: %p @%s:%d\n", a, __FILE__, __LINE__); \ + __bd_release(a); \ + }) /* fs/char_dev.c */ extern int alloc_chrdev_region(dev_t *, unsigned, unsigned, const char *);