Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm
[deliverable/linux.git] / fs / ocfs2 / symlink.c
index c0f68aa6c17515c3353547ab1dd78ee169eb4b6a..7134007ba22fa4142f6f0f9714828bfee7174225 100644 (file)
@@ -67,16 +67,9 @@ static char *ocfs2_page_getlink(struct dentry * dentry,
        page = read_mapping_page(mapping, 0, NULL);
        if (IS_ERR(page))
                goto sync_fail;
-       wait_on_page_locked(page);
-       if (!PageUptodate(page))
-               goto async_fail;
        *ppage = page;
        return kmap(page);
 
-async_fail:
-       page_cache_release(page);
-       return ERR_PTR(-EIO);
-
 sync_fail:
        return (char*)page;
 }
@@ -126,6 +119,10 @@ static int ocfs2_readlink(struct dentry *dentry,
                goto out;
        }
 
+       /*
+        * Without vfsmount we can't update atime now,
+        * but we will update atime here ultimately.
+        */
        ret = vfs_readlink(dentry, buffer, buflen, link);
 
        brelse(bh);
@@ -154,8 +151,7 @@ static void *ocfs2_follow_link(struct dentry *dentry,
        }
 
        status = vfs_follow_link(nd, link);
-       if (status && status != -ENOENT)
-               mlog_errno(status);
+
 bail:
        if (page) {
                kunmap(page);
@@ -167,12 +163,12 @@ bail:
        return ERR_PTR(status);
 }
 
-struct inode_operations ocfs2_symlink_inode_operations = {
+const struct inode_operations ocfs2_symlink_inode_operations = {
        .readlink       = page_readlink,
        .follow_link    = ocfs2_follow_link,
        .getattr        = ocfs2_getattr,
 };
-struct inode_operations ocfs2_fast_symlink_inode_operations = {
+const struct inode_operations ocfs2_fast_symlink_inode_operations = {
        .readlink       = ocfs2_readlink,
        .follow_link    = ocfs2_follow_link,
        .getattr        = ocfs2_getattr,
This page took 0.02436 seconds and 5 git commands to generate.