From: 서성종 <sj1557.seo@samsung.com>
To: "Yuezhang.Mo@sony.com" <Yuezhang.Mo@sony.com>,
"linkinjeon@kernel.org" <linkinjeon@kernel.org>
Cc: "linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
"Andy.Wu@sony.com" <Andy.Wu@sony.com>,
"Wataru.Aoyama@sony.com" <Wataru.Aoyama@sony.com>
Subject: RE: [PATCH v2 02/10] exfat: add exfat_get_empty_dentry_set() helper
Date: Mon, 04 Mar 2024 13:43:15 +0900 [thread overview]
Message-ID: <1891546521.01709530081906.JavaMail.epsvc@epcpadp4> (raw)
In-Reply-To: CGME20231228065938epcas1p3112d227f22639ca54849441146d9bdbf@epcms1p1
> > > + for (i = 0; i < es->num_entries; i++) {
> > > + ep = exfat_get_dentry_cached(es, i);
> > > + if (ep->type == EXFAT_UNUSED)
> > > + unused_hit = true;
> > > + else if (IS_EXFAT_DELETED(ep->type)) {
> >
> > Although it violates the specification for a deleted entry to follow
> > an unused entry, some exFAT implementations could work like this.
> >
> > Therefore, to improve compatibility, why don't we allow this?
> > I believe there will be no functional problem even if this is allowed.
>
> This check existed before this patch set.
Do you mean the part that will be deleted by the patch [7/10] mentioned below?
If so, I think you may be misunderstanding it.
>
> This patch set is intended to improve the performance of sync dentry, I
> don't think it is a good idea to change other logic in this patch set.
Yeah, as you said, this patch set should keep the original logic except
for the sync related parts. The reason I left a review comment is because
the code before this patch set allows deleted dentries to follow unused
dentries.
Please let me know if I missed anything.
> Patch [7/10] moves the check from exfat_search_empty_slot() to
> exfat_validate_empty_dentry_set().
>
> - if (hint_femp->eidx != EXFAT_HINT_NONE &&
> - hint_femp->count == CNT_UNUSED_HIT) {
> - /* unused empty group means
> - * an empty group which includes
> - * unused dentry
> - */
> - exfat_fs_error(sb,
> - "found bogus dentry(%d) beyond
> unused empty group(%d) (start_clu : %u, cur_clu : %u)",
> - dentry, hint_femp->eidx,
> - p_dir->dir, clu.dir);
>
> >
> > > + if (unused_hit)
> > > + goto out;
> > > + } else {
> > > + if (unused_hit)
> > > + goto out;
> > Label "out" does not look like an error situation.
> > Let's use "out_err" instead of "out".
>
> Makes sense, I will rename the label to "err_deleted_after_unused".
Sounds good :)
next parent reply other threads:[~2024-03-04 5:34 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20231228065938epcas1p3112d227f22639ca54849441146d9bdbf@epcms1p1>
2024-03-04 4:43 ` 서성종 [this message]
2024-03-04 7:29 ` [PATCH v2 02/10] exfat: add exfat_get_empty_dentry_set() helper Yuezhang.Mo
2024-03-04 8:42 ` Sungjong Seo
2024-03-04 11:37 ` Yuezhang.Mo
2024-03-07 11:07 ` Sungjong Seo
[not found] <CGME20231228065938epcas1p3112d227f22639ca54849441146d9bdbf@epcas1p3.samsung.com>
2023-12-28 6:59 ` Yuezhang.Mo
2024-02-29 6:18 ` Sungjong Seo
2024-02-29 9:37 ` Yuezhang.Mo
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=1891546521.01709530081906.JavaMail.epsvc@epcpadp4 \
--to=sj1557.seo@samsung.com \
--cc=Andy.Wu@sony.com \
--cc=Wataru.Aoyama@sony.com \
--cc=Yuezhang.Mo@sony.com \
--cc=linkinjeon@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
/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: link
Be 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.