Btrfs: Fix releasepage to properly keep dirty and writeback pages

Signed-off-by: Chris Mason <chris.mason@oracle.com>
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 073fdd7..24b7e97 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -3060,6 +3060,8 @@
 
 static int btrfs_releasepage(struct page *page, gfp_t gfp_flags)
 {
+	if (PageWriteback(page) || PageDirty(page))
+		return 0;
 	return __btrfs_releasepage(page, gfp_flags);
 }