public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Tom Rini <trini@konsulko.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] fs: fat: handle deleted directory entries correctly
Date: Thu, 5 Dec 2019 17:09:35 -0500	[thread overview]
Message-ID: <20191205220935.GY9549@bill-the-cat> (raw)
In-Reply-To: <20191126082931.23698-1-takahiro.akashi@linaro.org>

On Tue, Nov 26, 2019 at 05:29:31PM +0900, AKASHI Takahiro wrote:

> Unlink test for FAT file system seems to fail at test_unlink2.
> (When I added this test, I haven't seen any errors though.)
> for example,
> ===8<===
> fs_obj_unlink = ['fat', '/home/akashi/tmp/uboot_sandbox_test/128MB.fat32.img']
> 
>     def test_unlink2(self, u_boot_console, fs_obj_unlink):
>         """
>         Test Case 2 - delete many files
>         """
>         fs_type,fs_img = fs_obj_unlink
>         with u_boot_console.log.section('Test Case 2 - unlink (many)'):
>             output = u_boot_console.run_command('host bind 0 %s' % fs_img)
> 
>             for i in range(0, 20):
>                 output = u_boot_console.run_command_list([
>                     '%srm host 0:0 dir2/0123456789abcdef%02x' % (fs_type, i),
>                     '%sls host 0:0 dir2/0123456789abcdef%02x' % (fs_type, i)])
>                 assert('' == ''.join(output))
> 
>             output = u_boot_console.run_command(
>                 '%sls host 0:0 dir2' % fs_type)
> >           assert('0 file(s), 2 dir(s)' in output)
> E           AssertionError: assert '0 file(s), 2 dir(s)' in '            ./\r\r\n            ../\r\r\n        0   0123456789abcdef11\r\r\n\r\r\n1 file(s), 2 dir(s)'
> 
> test/py/tests/test_fs/test_unlink.py:52: AssertionError
> ===>8===
> 
> This can happen when fat_itr_next() wrongly detects an already-
> deleted directory entry.
> 
> File deletion, which was added in the commit f8240ce95d64 ("fs: fat:
> support unlink"), is implemented by marking its entry for a short name
> with DELETED_FLAG, but related entry slots for a long file name are kept
> unmodified. (So entries will never be actually deleted from media.)
> 
> To handle this case correctly, an additional check for a directory slot
> will be needed in fat_itr_next().
> 
> In addition, I added extra comments about long file name and short file
> name format in FAT file system. Although they are not directly related
> to the issue, I hope it will be helpful for better understandings
> in general.
> 
> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20191205/ae55b665/attachment.sig>

  parent reply	other threads:[~2019-12-05 22:09 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-26  8:29 [U-Boot] [PATCH] fs: fat: handle deleted directory entries correctly AKASHI Takahiro
2019-11-27  4:34 ` AKASHI Takahiro
2019-12-05 22:09 ` Tom Rini [this message]
2020-01-13 10:52   ` fat: handle Windows formatted partition (thru USB Mass Storage) Andy Shevchenko
2020-01-13 10:53     ` Fwd: " Andy Shevchenko
2020-01-13 16:34     ` Tom Rini
2020-01-13 17:55       ` Heinrich Schuchardt
2020-01-13 19:15         ` Andy Shevchenko
2020-01-13 19:22           ` Andy Shevchenko
2020-01-13 20:58             ` Andy Shevchenko
2020-01-13 21:05               ` Heinrich Schuchardt
2020-01-13 21:52                 ` Andy Shevchenko
2020-01-13 23:14                   ` Heinrich Schuchardt
2020-01-14  8:21                     ` Andy Shevchenko
2020-01-14  8:23                       ` Andy Shevchenko
2020-01-14 12:43                         ` Andy Shevchenko
2020-01-14 13:16                           ` Andy Shevchenko
2020-01-15  0:12                           ` AKASHI Takahiro
2020-01-16  2:01                             ` AKASHI Takahiro
2020-01-16 10:39                               ` Andy Shevchenko
2020-01-16 19:20                                 ` Heinrich Schuchardt
2020-01-16 20:31                                   ` Andy Shevchenko
2020-01-17  6:12                                     ` AKASHI Takahiro
2020-01-17  9:47                                       ` Andy Shevchenko
2020-01-17 14:51                                         ` Tom Rini
2020-01-21  0:39                                         ` AKASHI Takahiro
2020-01-21 16:13                                           ` Andy Shevchenko

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=20191205220935.GY9549@bill-the-cat \
    --to=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox