lkml.org 
[lkml]   [2020]   [Jun]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v3] exfat: remove EXFAT_SB_DIRTY flag
    From
    Date
    Thank you for your comment.

    On 2020/06/17 16:20, Sungjong Seo wrote:
    >> remove EXFAT_SB_DIRTY flag and related codes.
    >>
    >> This flag is set/reset in exfat_put_super()/exfat_sync_fs() to avoid
    >> sync_blockdev().
    >> However ...
    >> - exfat_put_super():
    >> Before calling this, the VFS has already called sync_filesystem(), so sync
    >> is never performed here.
    >> - exfat_sync_fs():
    >> After calling this, the VFS calls sync_blockdev(), so, it is meaningless
    >> to check EXFAT_SB_DIRTY or to bypass sync_blockdev() here.
    >> Not only that, but in some cases can't clear VOL_DIRTY.
    >> ex:
    >> VOL_DIRTY is set when rmdir starts, but when non-empty-dir is detected,
    >> return error without setting EXFAT_SB_DIRTY.
    >> If performe 'sync' in this state, VOL_DIRTY will not be cleared.
    >>
    >
    > Since this patch does not resolve 'VOL_DIRTY in ENOTEMPTY' problem you
    > mentioned,
    > it would be better to remove the description above for that and to make new
    > patch.

    I mentioned rmdir as an example.
    However, this problem is not only with rmdirs.
    VOL_DIRTY remains when some functions abort with an error.
    In original, VOL_DIRTY is not cleared even if performe 'sync'.
    With this patch, it ensures that VOL_DIRTY will be cleared by 'sync'.

    Is my description insufficient?


    BTW
    Even with this patch applied, VOL_DIRTY remains until synced in the above case.
    It's not easy to reproduce as rmdir, but I'll try to fix it in the future.


    BR
    ---
    Tetsuhiro Kohada <kohada.t2@gmail.com>



    \
     
     \ /
      Last update: 2020-06-18 10:39    [W:4.139 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site