Here is a trivial bug fix for blkdev_reread_part() in 2.5.31.
Without this fix, "fdisk" hangs with following messages:
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16:
Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
part = disk->part + minor(dev) - disk->first_minor;
if (!capable(CAP_SYS_ADMIN))
return -EACCES;
- if (down_trylock(&bdev->bd_sem));
+ if (down_trylock(&bdev->bd_sem))
return -EBUSY;
if (bdev->bd_part_count) {
up(&bdev->bd_sem);