btrfs: fix return value check of btrfs_join_transaction()
authorTsutomu Itoh <t-itoh@jp.fujitsu.com>
Tue, 25 Jan 2011 02:51:38 +0000 (02:51 +0000)
committerChris Mason <chris.mason@oracle.com>
Fri, 28 Jan 2011 21:40:37 +0000 (16:40 -0500)
commit3612b49598c303cfb22a4b609427f829828e2427
treed0e9eabb176777ab80af5d78eab0555044172370
parent34d19bada00f4825588b338a8ee193820f9ceeb0
btrfs: fix return value check of btrfs_join_transaction()

The error check of btrfs_join_transaction()/btrfs_join_transaction_nolock()
is added, and the mistake of the error check in several places is
corrected.

For more stable Btrfs, I think that we should reduce BUG_ON().
But, I think that long time is necessary for this.
So, I propose this patch as a short-term solution.

With this patch:
 - To more stable Btrfs, the part that should be corrected is clarified.
 - The panic isn't done by the NULL pointer reference etc. (even if
   BUG_ON() is increased temporarily)
 - The error code is returned in the place where the error can be easily
   returned.

As a long-term plan:
 - BUG_ON() is reduced by using the forced-readonly framework, etc.

Signed-off-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/disk-io.c
fs/btrfs/extent-tree.c
fs/btrfs/inode.c
fs/btrfs/ioctl.c
fs/btrfs/relocation.c
fs/btrfs/transaction.c