]> git.itanic.dy.fi Git - linux-stable/commitdiff
ext4: explicitly remove inode from orphan list after failed direct io
authorDmitry Monakhov <dmonakhov@openvz.org>
Mon, 31 May 2010 02:49:32 +0000 (22:49 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 2 Aug 2010 17:21:13 +0000 (10:21 -0700)
commit da1dafca84413145f5ac59998b4cdd06fb89f721 upstream (as of v2.6.33-git11)

Otherwise non-empty orphan list will be triggered on umount.

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/ext4/inode.c

index ceba60661d8175c1561e54a8414aaec21502e4ae..65176242886a8d65f067cc561bd1c6e28522f676 100644 (file)
@@ -3480,6 +3480,9 @@ static ssize_t ext4_ind_direct_IO(int rw, struct kiocb *iocb,
                         * but cannot extend i_size. Bail out and pretend
                         * the write failed... */
                        ret = PTR_ERR(handle);
+                       if (inode->i_nlink)
+                               ext4_orphan_del(NULL, inode);
+
                        goto out;
                }
                if (inode->i_nlink)