]> git.ipfire.org Git - people/ms/linux.git/blobdiff - fs/exfat/namei.c
Merge branch 'for-6.0/dax' into libnvdimm-fixes
[people/ms/linux.git] / fs / exfat / namei.c
index c6eaf7e9ea743a1cabd032bed93fd8dd465ade28..b617bebc3d0f3796fbf38e06ee26835fd5eae7ca 100644 (file)
@@ -318,7 +318,6 @@ static int exfat_find_empty_entry(struct inode *inode,
        unsigned int ret, last_clu;
        loff_t size = 0;
        struct exfat_chain clu;
-       struct exfat_dentry *ep = NULL;
        struct super_block *sb = inode->i_sb;
        struct exfat_sb_info *sbi = EXFAT_SB(sb);
        struct exfat_inode_info *ei = EXFAT_I(inode);
@@ -383,25 +382,6 @@ static int exfat_find_empty_entry(struct inode *inode,
                p_dir->size++;
                size = EXFAT_CLU_TO_B(p_dir->size, sbi);
 
-               /* update the directory entry */
-               if (p_dir->dir != sbi->root_dir) {
-                       struct buffer_head *bh;
-
-                       ep = exfat_get_dentry(sb,
-                               &(ei->dir), ei->entry + 1, &bh);
-                       if (!ep)
-                               return -EIO;
-
-                       ep->dentry.stream.valid_size = cpu_to_le64(size);
-                       ep->dentry.stream.size = ep->dentry.stream.valid_size;
-                       ep->dentry.stream.flags = p_dir->flags;
-                       exfat_update_bh(bh, IS_DIRSYNC(inode));
-                       brelse(bh);
-                       if (exfat_update_dir_chksum(inode, &(ei->dir),
-                           ei->entry))
-                               return -EIO;
-               }
-
                /* directory inode should be updated in here */
                i_size_write(inode, size);
                ei->i_size_ondisk += sbi->cluster_size;
@@ -462,7 +442,7 @@ static int __exfat_resolve_path(struct inode *inode, const unsigned char *path,
                return namelen; /* return error value */
 
        if ((lossy && !lookup) || !namelen)
-               return -EINVAL;
+               return (lossy & NLS_NAME_OVERLEN) ? -ENAMETOOLONG : -EINVAL;
 
        exfat_chain_set(p_dir, ei->start_clu,
                EXFAT_B_TO_CLU(i_size_read(inode), sbi), ei->flags);