summaryrefslogtreecommitdiffstats
path: root/fs/isofs/rock.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-07-08 00:53:00 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-07-08 00:53:00 +0000
commitb8553086288629b4efb77e97f5582e08bc50ad65 (patch)
tree0a19bd1c21e148f35c7a0f76baa4f7a056b966b0 /fs/isofs/rock.c
parent75b6d92f2dd5112b02f4e78cf9f35f9825946ef0 (diff)
Merge with 2.4.0-test3-pre4.
Diffstat (limited to 'fs/isofs/rock.c')
-rw-r--r--fs/isofs/rock.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/isofs/rock.c b/fs/isofs/rock.c
index 925c8e2fd..4413b9989 100644
--- a/fs/isofs/rock.c
+++ b/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 @@ static int rock_ridge_symlink_readpage(struct file *file, struct page *page)
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 @@ static int rock_ridge_symlink_readpage(struct file *file, struct page *page)
goto fail;
brelse(bh);
*rpnt = '\0';
+ unlock_kernel();
SetPageUptodate(page);
kunmap(page);
UnlockPage(page);
@@ -535,6 +538,7 @@ static int rock_ridge_symlink_readpage(struct file *file, struct page *page)
printk("symlink spans iso9660 blocks\n");
fail:
brelse(bh);
+ unlock_kernel();
SetPageError(page);
kunmap(page);
UnlockPage(page);