On 08/14/2013 10:04 AM, Anand Jain wrote:


On 08/14/2013 03:14 AM, Josef Bacik wrote:
On Fri, Jul 26, 2013 at 01:35:28AM +0800, Anand Jain wrote:
Signed-off-by: Anand Jain <anand.j...@oracle.com>
---
  mkfs.c |    3 ++-
  1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/mkfs.c b/mkfs.c
index 60f906c..66f558a 100644
--- a/mkfs.c
+++ b/mkfs.c
@@ -1570,6 +1570,8 @@ int main(int ac, char **av)
           * occur by the following processing.
           * (btrfs_register_one_device() fails if O_EXCL is on)
           */
+        if (fd > 0)
+            close(fd);
          fd = open(file, O_RDWR);
          if (fd < 0) {
              fprintf(stderr, "unable to open %s: %s\n", file,
@@ -1581,7 +1583,6 @@ int main(int ac, char **av)
          if (ret) {
              fprintf(stderr, "skipping duplicate device %s in FS\n",
                  file);
-            close(fd);
              continue;
          }
          ret = btrfs_prepare_device(fd, file, zero_end,
&dev_block_count,

This breaks mkfs with multiple disks.

  I can't believe as I have been playing with multiple disks
  quite a lot recently. let me dig more.

 Sorry my mistake.

 Indeed further down btrfs_add_to_fsid() stores fd. closing a
 stored fd is not correct theoretically.

 Josef, Would be keen to know which xfstest caught this. ?

 I am sending a patch to back out this, to be applied on the
 current integration branch if it helps users for the time being.

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

Reply via email to