Skip to content

Commit

Permalink
NFS: Fix missing page_unlock() in nfs_readpage
Browse files Browse the repository at this point in the history
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
  • Loading branch information
Trond Myklebust authored and Trond Myklebust committed Dec 6, 2006
1 parent 0b67130 commit cf1308f
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions fs/nfs/read.c
Original file line number Diff line number Diff line change
Expand Up @@ -145,12 +145,12 @@ static int nfs_readpage_sync(struct nfs_open_context *ctx, struct inode *inode,
{
unsigned int rsize = NFS_SERVER(inode)->rsize;
unsigned int count = PAGE_CACHE_SIZE;
int result;
int result = -ENOMEM;
struct nfs_read_data *rdata;

rdata = nfs_readdata_alloc(count);
if (!rdata)
return -ENOMEM;
goto out_unlock;

memset(rdata, 0, sizeof(*rdata));
rdata->flags = (IS_SWAPFILE(inode)? NFS_RPC_SWAPFLAGS : 0);
Expand Down Expand Up @@ -218,8 +218,9 @@ static int nfs_readpage_sync(struct nfs_open_context *ctx, struct inode *inode,
result = 0;

io_error:
unlock_page(page);
nfs_readdata_free(rdata);
out_unlock:
unlock_page(page);
return result;
}

Expand Down Expand Up @@ -630,9 +631,10 @@ int nfs_readpage(struct file *file, struct page *page)
goto out_error;

if (file == NULL) {
error = -EBADF;
ctx = nfs_find_open_context(inode, NULL, FMODE_READ);
if (ctx == NULL)
return -EBADF;
goto out_error;
} else
ctx = get_nfs_open_context((struct nfs_open_context *)
file->private_data);
Expand Down

0 comments on commit cf1308f

Please sign in to comment.