sysfs: fix race between readdir and lseek
[pandora-kernel.git] / fs / efs / symlink.c
index 41911ec..75117d0 100644 (file)
@@ -9,7 +9,6 @@
 #include <linux/string.h>
 #include <linux/pagemap.h>
 #include <linux/buffer_head.h>
-#include <linux/smp_lock.h>
 #include "efs.h"
 
 static int efs_symlink_readpage(struct file *file, struct page *page)
@@ -22,9 +21,8 @@ static int efs_symlink_readpage(struct file *file, struct page *page)
   
        err = -ENAMETOOLONG;
        if (size > 2 * EFS_BLOCKSIZE)
-               goto fail_notlocked;
+               goto fail;
   
-       lock_kernel();
        /* read first 512 bytes of link target */
        err = -EIO;
        bh = sb_bread(inode->i_sb, efs_bmap(inode, 0));
@@ -40,14 +38,11 @@ static int efs_symlink_readpage(struct file *file, struct page *page)
                brelse(bh);
        }
        link[size] = '\0';
-       unlock_kernel();
        SetPageUptodate(page);
        kunmap(page);
        unlock_page(page);
        return 0;
 fail:
-       unlock_kernel();
-fail_notlocked:
        SetPageError(page);
        kunmap(page);
        unlock_page(page);