patch-2.4.0-test4 linux/fs/block_dev.c

Next file: linux/fs/buffer.c
Previous file: linux/fs/binfmt_elf.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test3/linux/fs/block_dev.c linux/fs/block_dev.c
@@ -635,6 +635,7 @@
 	kdev_t rdev = to_kdev_t(bdev->bd_dev); /* this should become bdev */
 	down(&bdev->bd_sem);
 	/* syncing will go here */
+	lock_kernel();
 	if (kind == BDEV_FILE || kind == BDEV_FS)
 		fsync_dev(rdev);
 	if (atomic_dec_and_test(&bdev->bd_openers)) {
@@ -653,6 +654,7 @@
 	if (!atomic_read(&bdev->bd_openers))
 		bdev->bd_op = NULL;	/* we can't rely on driver being */
 					/* kind to stay around. */
+	unlock_kernel();
 	up(&bdev->bd_sem);
 	return ret;
 }

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)