diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 27715306f24bbf3f400bfeee7376a2e929fb214d..e056f617adf2f927bcc86b8cda118479a9588bee 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c @@ -480,8 +480,11 @@ nfs_lock_and_join_requests(struct page *page, bool nonblock) /* lock each request in the page group */ ret = nfs_page_group_lock(head, true); - if (ret < 0) + if (ret < 0) { + spin_unlock(&inode->i_lock); + nfs_release_request(head); return ERR_PTR(ret); + } subreq = head; do { /*