lkml.org 
[lkml]   [2021]   [Oct]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH 5/5] fs/ntfs3: Refactor ntfs_read_mft
    From
    [PATCH 5/5] fs/ntfs3: Refactor ntfs_read_mft

    Don't save size of attribute reparse point as size of symlink.

    Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
    ---
    fs/ntfs3/inode.c | 22 ++++++++--------------
    1 file changed, 8 insertions(+), 14 deletions(-)

    diff --git a/fs/ntfs3/inode.c b/fs/ntfs3/inode.c
    index bdebbbd53e76..859951d785cb 100644
    --- a/fs/ntfs3/inode.c
    +++ b/fs/ntfs3/inode.c
    @@ -222,9 +222,6 @@ static struct inode *ntfs_read_mft(struct inode *inode,
    if (!attr->non_res) {
    ni->i_valid = inode->i_size = rsize;
    inode_set_bytes(inode, rsize);
    - t32 = asize;
    - } else {
    - t32 = le16_to_cpu(attr->nres.run_off);
    }

    mode = S_IFREG | (0777 & sbi->options->fs_fmask_inv);
    @@ -313,17 +310,14 @@ static struct inode *ntfs_read_mft(struct inode *inode,
    rp_fa = ni_parse_reparse(ni, attr, &rp);
    switch (rp_fa) {
    case REPARSE_LINK:
    - if (!attr->non_res) {
    - inode->i_size = rsize;
    - inode_set_bytes(inode, rsize);
    - t32 = asize;
    - } else {
    - inode->i_size =
    - le64_to_cpu(attr->nres.data_size);
    - t32 = le16_to_cpu(attr->nres.run_off);
    - }
    + /*
    + * Normal symlink.
    + * Assume one unicode symbol == one utf8.
    + */
    + inode->i_size = le16_to_cpu(rp.SymbolicLinkReparseBuffer
    + .PrintNameLength) /
    + sizeof(u16);

    - /* Looks like normal symlink. */
    ni->i_valid = inode->i_size;

    /* Clear directory bit. */
    @@ -420,7 +414,7 @@ static struct inode *ntfs_read_mft(struct inode *inode,
    ni->std_fa &= ~FILE_ATTRIBUTE_DIRECTORY;
    inode->i_op = &ntfs_link_inode_operations;
    inode->i_fop = NULL;
    - inode_nohighmem(inode); // ??
    + inode_nohighmem(inode);
    } else if (S_ISREG(mode)) {
    ni->std_fa &= ~FILE_ATTRIBUTE_DIRECTORY;
    inode->i_op = &ntfs_file_inode_operations;
    --
    2.33.0

    \
     
     \ /
      Last update: 2021-10-05 18:49    [W:2.221 / U:0.260 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site