svcrpc: don't hold sv_lock over svc_xprt_put()
[safe/jmp/linux-2.6] / fs / efs / symlink.c
index 1d30d2f..75117d0 100644 (file)
@@ -7,10 +7,9 @@
  */
 
 #include <linux/string.h>
-#include <linux/efs_fs.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);