[PATCH v3] btrfs: remove unnecessary error check

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Eric,

(2014/07/10 22:27), Eric Sandeen wrote:
On 7/10/14, 1:44 AM, Satoru Takeuchi wrote:
(2014/07/10 12:26), Eric Sandeen wrote:


On Jul 9, 2014, at 10:20 PM, Satoru Takeuchi <takeuchi_satoru@xxxxxxxxxxxxxx> wrote:

From: Satoru Takeuchi <takeuchi_satoru@xxxxxxxxxxxxxx>

If "(!IS_ERR(trans) || PTR_ERR(trans) != -ENOSPC))" is false,
obviously "trans" is -ENOSPC. So we can safely remove the redundant
"(PTR_ERR(trans) == -ENOSPC)" check.


True, but now a comment like:

/* Handle ENOSPC */

might still be nice...

Eric, thank you for your comment. I fixed my patch.
How about is it?

One other thing I missed the first time, I'm sorry, notes below:


===
From: Satoru Takeuchi <takeuchi_satoru@xxxxxxxxxxxxxx>

If "(!IS_ERR(trans) || PTR_ERR(trans) != -ENOSPC))" is false,
obviously "trans" is -ENOSPC. So we can safely remove the redundant
"(PTR_ERR(trans) == -ENOSPC)" check.

Signed-off-by: Satoru Takeuchi <takeuchi_satoru@xxxxxxxxxxxxxx>

---
  fs/btrfs/inode.c | 29 +++++++++++++++--------------
  1 file changed, 15 insertions(+), 14 deletions(-)

diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 3668048..115aac3 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -3803,22 +3803,23 @@ static struct btrfs_trans_handle *__unlink_start_trans(struct inode *dir)
      if (!IS_ERR(trans) || PTR_ERR(trans) != -ENOSPC)
          return trans;

-    if (PTR_ERR(trans) == -ENOSPC) {
-        u64 num_bytes = btrfs_calc_trans_metadata_size(root, 5);
+    /* Handle ENOSPC */

-        trans = btrfs_start_transaction(root, 0);
-        if (IS_ERR(trans))
-            return trans;
-        ret = btrfs_cond_migrate_bytes(root->fs_info,
-                           &root->fs_info->trans_block_rsv,
-                           num_bytes, 5);
-        if (ret) {
-            btrfs_end_transaction(trans, root);
-            return ERR_PTR(ret);
-        }
-        trans->block_rsv = &root->fs_info->trans_block_rsv;
-        trans->bytes_reserved = num_bytes;
+    u64 num_bytes = btrfs_calc_trans_metadata_size(root, 5);

This variable should be declared at the beginning of the function,
not in the middle, because it's no longer in a separate code block.

OK, moved.


Also, somehow by the time the patch got here, tabs turned into
4 spaces, so this one wouldn't apply for me.

I did't realize that. Thank you.

Sorry for missing the variable declaration problem the first time!

No problem, more review is welcome. THank you very much :-)

This is the v3 patch.

===
From: Satoru Takeuchi <takeuchi_satoru@xxxxxxxxxxxxxx>

If "(!IS_ERR(trans) || PTR_ERR(trans) != -ENOSPC))" is false,
obviously "trans" is -ENOSPC. So we can safely remove the redundant
"(PTR_ERR(trans) == -ENOSPC)" check.

Signed-off-by: Satoru Takeuchi <takeuchi_satoru@xxxxxxxxxxxxxx>

---
 fs/btrfs/inode.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 3668048..e7ac779 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -3790,6 +3790,7 @@ static struct btrfs_trans_handle *__unlink_start_trans(struct inode *dir)
 {
 	struct btrfs_trans_handle *trans;
 	struct btrfs_root *root = BTRFS_I(dir)->root;
+	u64 num_bytes = btrfs_calc_trans_metadata_size(root, 5);
 	int ret;
/*
@@ -3803,22 +3804,21 @@ static struct btrfs_trans_handle *__unlink_start_trans(struct inode *dir)
 	if (!IS_ERR(trans) || PTR_ERR(trans) != -ENOSPC)
 		return trans;
- if (PTR_ERR(trans) == -ENOSPC) {
-		u64 num_bytes = btrfs_calc_trans_metadata_size(root, 5);
+	/* Handle ENOSPC */
- trans = btrfs_start_transaction(root, 0);
-		if (IS_ERR(trans))
-			return trans;
-		ret = btrfs_cond_migrate_bytes(root->fs_info,
-					       &root->fs_info->trans_block_rsv,
-					       num_bytes, 5);
-		if (ret) {
-			btrfs_end_transaction(trans, root);
-			return ERR_PTR(ret);
-		}
-		trans->block_rsv = &root->fs_info->trans_block_rsv;
-		trans->bytes_reserved = num_bytes;
+	trans = btrfs_start_transaction(root, 0);
+	if (IS_ERR(trans))
+		return trans;
+	ret = btrfs_cond_migrate_bytes(root->fs_info,
+					&root->fs_info->trans_block_rsv,
+					num_bytes, 5);
+	if (ret) {
+		btrfs_end_transaction(trans, root);
+		return ERR_PTR(ret);
 	}
+	trans->block_rsv = &root->fs_info->trans_block_rsv;
+	trans->bytes_reserved = num_bytes;
+
 	return trans;
 }
--
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux