eCryptfs: Unlock page in write_begin error path
authorTyler Hicks <tyhicks@linux.vnet.ibm.com>
Wed, 9 Mar 2011 17:49:13 +0000 (11:49 -0600)
committerTyler Hicks <tyhicks@linux.vnet.ibm.com>
Mon, 28 Mar 2011 06:47:46 +0000 (01:47 -0500)
Unlock the page in error path of ecryptfs_write_begin(). This may
happen, for example, if decryption fails while bring the page
up-to-date.

Cc: <stable@kernel.org>
Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
fs/ecryptfs/mmap.c

index 5e150131eb9d3ad6b2df22b77a24093bf42e3c9e..6a44148c5fb97e3cfb866a024de27dbea2fbff39 100644 (file)
@@ -381,6 +381,11 @@ static int ecryptfs_write_begin(struct file *file,
            && (pos != 0))
                zero_user(page, 0, PAGE_CACHE_SIZE);
 out:
+       if (unlikely(rc)) {
+               unlock_page(page);
+               page_cache_release(page);
+               *pagep = NULL;
+       }
        return rc;
 }