]> git.baikalelectronics.ru Git - kernel.git/commit
Btrfs: igrab inode in writepage
authorJosef Bacik <jbacik@fb.com>
Thu, 22 Oct 2015 19:05:09 +0000 (15:05 -0400)
committerDavid Sterba <dsterba@suse.com>
Thu, 7 Jan 2016 13:26:58 +0000 (14:26 +0100)
commit842615390ca2935101c4a5203255586be645880d
tree54a0a2b42e3a6ce7dfe097d0240ed27e8d50ce2a
parent6849016837b6edd2f3fc4c4044a110223cfeb8d5
Btrfs: igrab inode in writepage

We hit this panic on a few of our boxes this week where we have an
ordered_extent with an NULL inode.  We do an igrab() of the inode in writepages,
but weren't doing it in writepage which can be called directly from the VM on
dirty pages.  If the inode has been unlinked then we could have I_FREEING set
which means igrab() would return NULL and we get this panic.  Fix this by trying
to igrab in btrfs_writepage, and if it returns NULL then just redirty the page
and return AOP_WRITEPAGE_ACTIVATE; so the VM knows it wasn't successful.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fb.com>
Reviewed-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/inode.c