summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/btrfs-tools/btrfs-tools/ftw-subdir-walk.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/btrfs-tools/btrfs-tools/ftw-subdir-walk.patch')
-rw-r--r--meta/recipes-devtools/btrfs-tools/btrfs-tools/ftw-subdir-walk.patch69
1 files changed, 0 insertions, 69 deletions
diff --git a/meta/recipes-devtools/btrfs-tools/btrfs-tools/ftw-subdir-walk.patch b/meta/recipes-devtools/btrfs-tools/btrfs-tools/ftw-subdir-walk.patch
deleted file mode 100644
index fbe0c47849..0000000000
--- a/meta/recipes-devtools/btrfs-tools/btrfs-tools/ftw-subdir-walk.patch
+++ /dev/null
@@ -1,69 +0,0 @@
1From patchwork Wed Mar 28 06:39:09 2018
2Content-Type: text/plain; charset="utf-8"
3MIME-Version: 1.0
4Content-Transfer-Encoding: 7bit
5Subject: btrfs-progs: mkfs/rootdir: Don't follow symbolic link when calcuating
6 size
7From: Qu Wenruo <wqu@suse.com>
8X-Patchwork-Id: 10312225
9Message-Id: <20180328063909.937-1-wqu@suse.com>
10To: linux-btrfs@vger.kernel.org
11Date: Wed, 28 Mar 2018 14:39:09 +0800
12
13[BUG]
14If we have a symbolic link in rootdir pointing to non-existing location,
15mkfs.btrfs --rootdir will just fail:
16------
17$ mkfs.btrfs -f --rootdir /tmp/rootdir/ /dev/data/btrfs
18btrfs-progs v4.15.1
19See http://btrfs.wiki.kernel.org for more information.
20
21ERROR: ftw subdir walk of /tmp/rootdir/ failed: No such file or directory
22------
23
24[CAUSE]
25Commit 599a0abed564 ("btrfs-progs: mkfs/rootdir: Use over-reserve method
26to make size estimate easier") add extra ftw walk to estimate the
27filesystem size.
28
29Such default ftw walk will follow symbolic link and gives ENOENT error.
30
31[FIX]
32Use nftw() to specify FTW_PHYS so we won't follow symbolic link for size
33calculation.
34
35Reported-by: Alexander Kanavin <alexander.kanavin@intel.com>
36Fixes: 599a0abed564 ("btrfs-progs: mkfs/rootdir: Use over-reserve method to make size estimate easier")
37Signed-off-by: Qu Wenruo <wqu@suse.com>
38Upstream-Status: Submitted [https://patchwork.kernel.org/patch/10312225/]
39---
40 mkfs/rootdir.c | 9 +++++++--
41 1 file changed, 7 insertions(+), 2 deletions(-)
42
43diff --git a/mkfs/rootdir.c b/mkfs/rootdir.c
44index a1d223a2408a..33c3ff1e18cf 100644
45--- a/mkfs/rootdir.c
46+++ b/mkfs/rootdir.c
47@@ -696,7 +696,7 @@ out:
48 }
49
50 static int ftw_add_entry_size(const char *fpath, const struct stat *st,
51- int type)
52+ int type, struct FTW *ftwbuf)
53 {
54 /*
55 * Failed to read the directory, mostly due to EPERM. Abort ASAP, so
56@@ -731,7 +731,12 @@ u64 btrfs_mkfs_size_dir(const char *dir_name, u32 sectorsize, u64 min_dev_size,
57 fs_block_size = sectorsize;
58 ftw_data_size = 0;
59 ftw_meta_nr_inode = 0;
60- ret = ftw(dir_name, ftw_add_entry_size, 10);
61+
62+ /*
63+ * Symbolic link is not followed when creating files, so no need to
64+ * follow them here.
65+ */
66+ ret = nftw(dir_name, ftw_add_entry_size, 10, FTW_PHYS);
67 if (ret < 0) {
68 error("ftw subdir walk of %s failed: %s", dir_name,
69 strerror(errno));