

We need to hold i_sem while running i_size_write().  But that seems like a
lot of fuss and deadlock potential.  So just write the dang thing.



---

 fs/block_dev.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)

diff -puN fs/block_dev.c~bd_set_size-i_size-fix fs/block_dev.c
--- 25/fs/block_dev.c~bd_set_size-i_size-fix	2004-01-30 17:42:37.000000000 -0800
+++ 25-akpm/fs/block_dev.c	2004-01-30 17:42:46.000000000 -0800
@@ -525,7 +525,8 @@ EXPORT_SYMBOL(check_disk_change);
 static void bd_set_size(struct block_device *bdev, loff_t size)
 {
 	unsigned bsize = bdev_hardsect_size(bdev);
-	i_size_write(bdev->bd_inode, size);
+
+	bdev->bd_inode->i_size = size;
 	while (bsize < PAGE_CACHE_SIZE) {
 		if (size & bsize)
 			break;

_
