patch-2.4.0-test3 linux/fs/isofs/rock.c

Next file: linux/fs/jffs/Makefile
Previous file: linux/fs/ioctl.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test2/linux/fs/isofs/rock.c linux/fs/isofs/rock.c
@@ -13,6 +13,7 @@
 #include <linux/mm.h>
 #include <linux/malloc.h>
 #include <linux/pagemap.h>
+#include <linux/smp_lock.h>
 
 #include "rock.h"
 
@@ -466,6 +467,7 @@
 		panic ("Cannot have symlink with high sierra variant of iso filesystem\n");
 
 	block = inode->i_ino >> bufbits;
+	lock_kernel();
 	bh = bread(inode->i_dev, block, bufsize);
 	if (!bh)
 		goto out_noread;
@@ -518,6 +520,7 @@
 		goto fail;
 	brelse(bh);
 	*rpnt = '\0';
+	unlock_kernel();
 	SetPageUptodate(page);
 	kunmap(page);
 	UnlockPage(page);
@@ -535,6 +538,7 @@
 	printk("symlink spans iso9660 blocks\n");
       fail:
 	brelse(bh);
+	unlock_kernel();
 	SetPageError(page);
 	kunmap(page);
 	UnlockPage(page);

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