Setting the block size back to the original blocksize at umount time
is unnecessary, and can cause buffer errors and infinite loops in
__getblk_slow, and possibly other problems.
Just getting bdev_lock instead causes other issues, namely AB-BA deadlocks
with /proc/meminfo etc. Just drop it, and replace with a "sync_blockdev()"
to cause a flush (which was a side effect of changing the blocksize before).
Debugging and testing by Jeff Mahoney <jeffm@suse.com>
bdev_uevent(bdev, KOBJ_UMOUNT);
generic_shutdown_super(sb);
- set_blocksize(bdev, sb->s_old_blocksize);
+ sync_blockdev(bdev);
close_bdev_excl(bdev);
}