lkml.org 
[lkml]   [2022]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.19 01/38] fs/ntfs3: Fix work with fragmented xattr
    Date
    From: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>

    [ Upstream commit 42f86b1226a42bfc79a7125af435432ad4680a32 ]

    In some cases xattr is too fragmented,
    so we need to load it before writing.

    Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/ntfs3/xattr.c | 7 ++++++-
    1 file changed, 6 insertions(+), 1 deletion(-)

    diff --git a/fs/ntfs3/xattr.c b/fs/ntfs3/xattr.c
    index 5e0e0280e70d..d2337ee0b7d6 100644
    --- a/fs/ntfs3/xattr.c
    +++ b/fs/ntfs3/xattr.c
    @@ -118,7 +118,7 @@ static int ntfs_read_ea(struct ntfs_inode *ni, struct EA_FULL **ea,

    run_init(&run);

    - err = attr_load_runs(attr_ea, ni, &run, NULL);
    + err = attr_load_runs_range(ni, ATTR_EA, NULL, 0, &run, 0, size);
    if (!err)
    err = ntfs_read_run_nb(sbi, &run, 0, ea_p, size, NULL);
    run_close(&run);
    @@ -444,6 +444,11 @@ static noinline int ntfs_set_ea(struct inode *inode, const char *name,
    /* Delete xattr, ATTR_EA */
    ni_remove_attr_le(ni, attr, mi, le);
    } else if (attr->non_res) {
    + err = attr_load_runs_range(ni, ATTR_EA, NULL, 0, &ea_run, 0,
    + size);
    + if (err)
    + goto out;
    +
    err = ntfs_sb_write_run(sbi, &ea_run, 0, ea_all, size, 0);
    if (err)
    goto out;
    --
    2.35.1
    \
     
     \ /
      Last update: 2022-08-25 03:35    [W:2.883 / U:0.616 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site