From 4943b89daffd0834bb14c593a747c22576f16b63 Mon Sep 17 00:00:00 2001 From: Chuck Lever Date: Mon, 20 Mar 2006 13:44:35 -0500 Subject: [PATCH] --- yaml --- r: 23913 b: refs/heads/master c: a37ec012d7fd352648c8455d3396ea24001efcd3 h: refs/heads/master i: 23911: 21b5927ec322ff2e17adf7386dcd7807a5603790 v: v3 --- [refs] | 2 +- trunk/fs/nfs/direct.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 0145f28e9d49..b3cd6317fb3d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 15ce4a0c1ce0d5e288398cb9e5493fd4e55e2025 +refs/heads/master: a37ec012d7fd352648c8455d3396ea24001efcd3 diff --git a/trunk/fs/nfs/direct.c b/trunk/fs/nfs/direct.c index 3de7c4b07968..737990dd4dfe 100644 --- a/trunk/fs/nfs/direct.c +++ b/trunk/fs/nfs/direct.c @@ -219,6 +219,7 @@ static void nfs_direct_complete(struct nfs_direct_req *dreq) } else wake_up(&dreq->wait); + iput(dreq->inode); kref_put(&dreq->kref, nfs_direct_req_release); } @@ -374,6 +375,7 @@ static ssize_t nfs_direct_read(struct kiocb *iocb, unsigned long user_addr, size dreq->pages = pages; dreq->npages = nr_pages; + igrab(inode); dreq->inode = inode; dreq->filp = iocb->ki_filp; if (!is_sync_kiocb(iocb)) @@ -549,6 +551,7 @@ static ssize_t nfs_direct_write(struct kiocb *iocb, unsigned long user_addr, siz dreq->pages = pages; dreq->npages = nr_pages; + igrab(inode); dreq->inode = inode; dreq->filp = iocb->ki_filp; if (!is_sync_kiocb(iocb))