summaryrefslogtreecommitdiffstats
path: root/fs/affs
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/affs
parent75b6d92f2dd5112b02f4e78cf9f35f9825946ef0 (diff)
Merge with 2.4.0-test3-pre4.
Diffstat (limited to 'fs/affs')
-rw-r--r--fs/affs/symlink.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/affs/symlink.c b/fs/affs/symlink.c
index aee023ef5..f7e78a75d 100644
--- a/fs/affs/symlink.c
+++ b/fs/affs/symlink.c
@@ -14,6 +14,7 @@
#include <linux/affs_fs.h>
#include <linux/amigaffs.h>
#include <linux/pagemap.h>
+#include <linux/smp_lock.h>
static int affs_symlink_readpage(struct file *file, struct page *page)
{
@@ -30,7 +31,9 @@ static int affs_symlink_readpage(struct file *file, struct page *page)
pr_debug("AFFS: follow_link(ino=%lu)\n",inode->i_ino);
err = -EIO;
+ lock_kernel();
bh = affs_bread(inode->i_dev,inode->i_ino,AFFS_I2BSIZE(inode));
+ unlock_kernel();
if (!bh)
goto fail;
i = 0;
@@ -59,7 +62,9 @@ static int affs_symlink_readpage(struct file *file, struct page *page)
j++;
}
link[i] = '\0';
+ lock_kernel();
affs_brelse(bh);
+ unlock_kernel();
SetPageUptodate(page);
kunmap(page);
UnlockPage(page);