From: Marek Behun <marek.behun@nic.cz> To: Su Yue <Damenly_Su@gmx.com> Cc: Qu Wenruo <wqu@suse.com>, linux-btrfs@vger.kernel.org, fstests@vger.kernel.org, u-boot@lists.denx.de Subject: Re: [PATCH U-BOOT 18/26] fs: btrfs: Implement btrfs_lookup_path() Date: Wed, 22 Apr 2020 12:04:51 +0200 [thread overview] Message-ID: <20200422120451.5864d812@nic.cz> (raw) In-Reply-To: <368vvoni.fsf@gmx.com> On Wed, 22 Apr 2020 17:46:25 +0800 Su Yue <Damenly_Su@gmx.com> wrote: > > + while (*cur != '\0') { > > + > > + cur = skip_current_directories(cur); > > + len = next_length(cur); > > + if (len > BTRFS_NAME_LEN) { > > next_length() promises @len <= BTRFS_NAME_LEN, so the check is trivial. Hmm. This is a bug in next_length. I meant for next_length to return len > BTRFS_NAME_LEN in case of too long name. Thanks for noticing. > > + ret = btrfs_readlink(root, ino, target); > > + if (ret < 0) { > > + free(target); > > + return ret; > > + } > > + target[ret] = '\0'; > > It was done in btrfs_readlink() already. It is in old btrfs_readlink, but is it even after this patches? I don't see it in the new implementation. > > + > > + ret = btrfs_lookup_path(root, ino, target, &next_root, > > + &next_ino, &next_type, > > + symlink_limit); > > Just notify gentlely this is a recursive call here. I don't know > whether uboot cares about stack things. But, recursion makes coding simpler :). It is limited by symlink_limit. Until somebody complains about stack issues I would like to keep it simple.
WARNING: multiple messages have this Message-ID (diff)
From: Marek Behun <marek.behun@nic.cz> To: u-boot@lists.denx.de Subject: [PATCH U-BOOT 18/26] fs: btrfs: Implement btrfs_lookup_path() Date: Wed, 22 Apr 2020 12:04:51 +0200 [thread overview] Message-ID: <20200422120451.5864d812@nic.cz> (raw) In-Reply-To: <368vvoni.fsf@gmx.com> On Wed, 22 Apr 2020 17:46:25 +0800 Su Yue <Damenly_Su@gmx.com> wrote: > > + while (*cur != '\0') { > > + > > + cur = skip_current_directories(cur); > > + len = next_length(cur); > > + if (len > BTRFS_NAME_LEN) { > > next_length() promises @len <= BTRFS_NAME_LEN, so the check is trivial. Hmm. This is a bug in next_length. I meant for next_length to return len > BTRFS_NAME_LEN in case of too long name. Thanks for noticing. > > + ret = btrfs_readlink(root, ino, target); > > + if (ret < 0) { > > + free(target); > > + return ret; > > + } > > + target[ret] = '\0'; > > It was done in btrfs_readlink() already. It is in old btrfs_readlink, but is it even after this patches? I don't see it in the new implementation. > > + > > + ret = btrfs_lookup_path(root, ino, target, &next_root, > > + &next_ino, &next_type, > > + symlink_limit); > > Just notify gentlely this is a recursive call here. I don't know > whether uboot cares about stack things. But, recursion makes coding simpler :). It is limited by symlink_limit. Until somebody complains about stack issues I would like to keep it simple.
next prev parent reply other threads:[~2020-04-22 10:05 UTC|newest] Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-04-22 6:49 [PATCH U-BOOT 00/26] fs: btrfs: Re-implement btrfs support using the more widely used extent buffer base code Qu Wenruo 2020-04-22 6:49 ` Qu Wenruo 2020-04-22 6:49 ` [PATCH U-BOOT 01/26] fs: btrfs: Sync btrfs_btree.h from kernel Qu Wenruo 2020-04-22 6:49 ` Qu Wenruo 2020-04-22 6:49 ` [PATCH U-BOOT 02/26] fs: btrfs: Add More checksum algorithm support to btrfs Qu Wenruo 2020-04-22 6:49 ` Qu Wenruo 2020-04-22 6:49 ` [PATCH U-BOOT 03/26] fs: btrfs: Cross-port btrfs_read_dev_super() from btrfs-progs Qu Wenruo 2020-04-22 6:49 ` Qu Wenruo 2020-04-22 8:26 ` Marek Behun 2020-04-22 8:26 ` Marek Behun 2020-04-22 8:34 ` Qu Wenruo 2020-04-22 8:34 ` Qu Wenruo 2020-04-22 6:49 ` [PATCH U-BOOT 04/26] fs: btrfs: Cross-port rbtree-utils " Qu Wenruo 2020-04-22 6:49 ` Qu Wenruo 2020-04-22 6:49 ` [PATCH U-BOOT 05/26] fs: btrfs: Cross-port extent-cache.[ch] " Qu Wenruo 2020-04-22 6:49 ` Qu Wenruo 2020-04-22 6:49 ` [PATCH U-BOOT 06/26] fs: btrfs: Cross-port extent-io.[ch] " Qu Wenruo 2020-04-22 6:49 ` Qu Wenruo 2020-04-22 6:49 ` [PATCH U-BOOT 07/26] fs: btrfs: Cross port structure accessor into ctree.h Qu Wenruo 2020-04-22 6:49 ` Qu Wenruo 2020-04-22 6:49 ` [PATCH U-BOOT 08/26] fs: btrfs: Cross port volumes.[ch] from btrfs-progs Qu Wenruo 2020-04-22 6:49 ` Qu Wenruo 2020-04-22 6:49 ` [PATCH U-BOOT 09/26] fs: btrfs: Crossport read_tree_block() " Qu Wenruo 2020-04-22 6:49 ` Qu Wenruo 2020-04-22 6:49 ` [PATCH U-BOOT 10/26] fs: btrfs: Rename struct btrfs_path to struct __btrfs_path Qu Wenruo 2020-04-22 6:49 ` Qu Wenruo 2020-04-22 6:49 ` [PATCH U-BOOT 11/26] fs: btrfs: Rename btrfs_root to __btrfs_root Qu Wenruo 2020-04-22 6:49 ` Qu Wenruo 2020-04-22 6:49 ` [PATCH U-BOOT 12/26] fs: btrfs: Cross port struct btrfs_root to ctree.h Qu Wenruo 2020-04-22 6:49 ` Qu Wenruo 2020-04-22 6:49 ` [PATCH U-BOOT 13/26] fs: btrfs: Crossport btrfs_search_slot() from btrfs-progs Qu Wenruo 2020-04-22 6:49 ` Qu Wenruo 2020-04-22 6:49 ` [PATCH U-BOOT 14/26] fs: btrfs: Crossport btrfs_read_sys_array() and btrfs_read_chunk_tree() Qu Wenruo 2020-04-22 6:49 ` Qu Wenruo 2020-04-22 6:49 ` [PATCH U-BOOT 15/26] fs: btrfs: Crossport open_ctree_fs_info() Qu Wenruo 2020-04-22 6:49 ` Qu Wenruo 2020-04-22 6:49 ` [PATCH U-BOOT 16/26] fs: btrfs: Rename path resolve related functions to avoid name conflicts Qu Wenruo 2020-04-22 6:49 ` Qu Wenruo 2020-04-22 6:50 ` [PATCH U-BOOT 17/26] fs: btrfs: Use btrfs_readlink() to implement __btrfs_readlink() Qu Wenruo 2020-04-22 6:50 ` Qu Wenruo 2020-04-22 6:50 ` [PATCH U-BOOT 18/26] fs: btrfs: Implement btrfs_lookup_path() Qu Wenruo 2020-04-22 6:50 ` Qu Wenruo 2020-04-22 9:37 ` Su Yue 2020-04-22 9:46 ` Su Yue 2020-04-22 9:46 ` Su Yue 2020-04-22 10:04 ` Marek Behun [this message] 2020-04-22 10:04 ` Marek Behun 2020-04-22 14:17 ` Su Yue 2020-04-22 14:17 ` Su Yue 2020-04-22 14:44 ` Su Yue 2020-04-22 14:44 ` Su Yue 2020-04-22 14:49 ` Marek Behun 2020-04-22 14:49 ` Marek Behun 2020-04-22 6:50 ` [PATCH U-BOOT 19/26] fs: btrfs: Use btrfs_iter_dir() to replace btrfs_readdir() Qu Wenruo 2020-04-22 6:50 ` Qu Wenruo 2020-04-22 6:50 ` [PATCH U-BOOT 20/26] fs: btrfs: Use btrfs_lookup_path() to implement btrfs_exists() and btrfs_size() Qu Wenruo 2020-04-22 6:50 ` Qu Wenruo 2020-04-22 6:50 ` [PATCH U-BOOT 21/26] fs: btrfs: Rename btrfs_file_read() and its callees to avoid name conflicts Qu Wenruo 2020-04-22 6:50 ` Qu Wenruo 2020-04-22 6:50 ` [PATCH U-BOOT 22/26] fs: btrfs: Introduce btrfs_read_extent_inline() and btrfs_read_extent_reg() Qu Wenruo 2020-04-22 6:50 ` Qu Wenruo 2020-04-22 6:50 ` [PATCH U-BOOT 23/26] fs: btrfs: Introduce lookup_data_extent() for later use Qu Wenruo 2020-04-22 6:50 ` Qu Wenruo 2020-04-22 6:50 ` [PATCH U-BOOT 24/26] fs: btrfs: Implement btrfs_file_read() Qu Wenruo 2020-04-22 6:50 ` Qu Wenruo 2020-04-22 6:50 ` [PATCH U-BOOT 25/26] fs: btrfs: Cleanup the old implementation Qu Wenruo 2020-04-22 6:50 ` Qu Wenruo 2020-04-22 6:50 ` [PATCH U-BOOT 26/26] MAINTAINERS: Add btrfs mail list Qu Wenruo 2020-04-22 6:50 ` Qu Wenruo 2020-04-22 7:46 ` [PATCH U-BOOT 00/26] fs: btrfs: Re-implement btrfs support using the more widely used extent buffer base code Marek Behun 2020-04-22 7:46 ` Marek Behun 2020-04-22 7:52 ` Qu Wenruo 2020-04-22 7:52 ` Qu Wenruo 2020-04-22 7:56 ` Qu Wenruo 2020-04-22 7:56 ` Qu Wenruo 2020-04-22 9:33 ` Marek Behun 2020-04-22 9:33 ` Marek Behun 2020-04-22 7:52 ` Marek Behun 2020-04-22 7:52 ` Marek Behun 2020-04-22 7:59 ` Marek Behun 2020-04-22 7:59 ` Marek Behun 2020-04-22 8:12 ` Qu Wenruo 2020-04-22 8:12 ` Qu Wenruo 2020-04-22 8:13 ` Marek Behun 2020-04-22 8:13 ` Marek Behun
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200422120451.5864d812@nic.cz \ --to=marek.behun@nic.cz \ --cc=Damenly_Su@gmx.com \ --cc=fstests@vger.kernel.org \ --cc=linux-btrfs@vger.kernel.org \ --cc=u-boot@lists.denx.de \ --cc=wqu@suse.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.