X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=fs%2Fnfs%2Fsymlink.c;h=412738dbfbc7e1024f90887e5e3cdd1a07a34563;hb=b2c0cea6b1cb210e962f07047df602875564069e;hp=6c686112cc03fa3c3dcea70180653640d95aaeb9;hpb=eb5f8545ffff98a11c6656d4d2106341ab69c57d;p=safe%2Fjmp%2Flinux-2.6 diff --git a/fs/nfs/symlink.c b/fs/nfs/symlink.c index 6c68611..412738d 100644 --- a/fs/nfs/symlink.c +++ b/fs/nfs/symlink.c @@ -10,7 +10,6 @@ * nfs symlink handling code */ -#define NFS_NEED_XDR_TYPES #include #include #include @@ -22,7 +21,6 @@ #include #include #include -#include #include /* Symlink caching in the page cache is even more simplistic @@ -50,7 +48,9 @@ static void *nfs_follow_link(struct dentry *dentry, struct nameidata *nd) { struct inode *inode = dentry->d_inode; struct page *page; - void *err = ERR_PTR(nfs_revalidate_mapping(inode, inode->i_mapping)); + void *err; + + err = ERR_PTR(nfs_revalidate_mapping_nolock(inode, inode->i_mapping)); if (err) goto read_failed; page = read_cache_page(&inode->i_data, 0, @@ -59,15 +59,9 @@ static void *nfs_follow_link(struct dentry *dentry, struct nameidata *nd) err = page; goto read_failed; } - if (!PageUptodate(page)) { - err = ERR_PTR(-EIO); - goto getlink_read_error; - } nd_set_link(nd, kmap(page)); return page; -getlink_read_error: - page_cache_release(page); read_failed: nd_set_link(nd, err); return NULL; @@ -76,7 +70,7 @@ read_failed: /* * symlinks can't do much... */ -struct inode_operations nfs_symlink_inode_operations = { +const struct inode_operations nfs_symlink_inode_operations = { .readlink = generic_readlink, .follow_link = nfs_follow_link, .put_link = page_put_link,