]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
fs/ntfs3: Minor ntfs_list_ea refactoring
authorKonstantin Komarov <almaz.alexandrovich@paragon-software.com>
Mon, 17 Jun 2024 11:47:20 +0000 (14:47 +0300)
committerKonstantin Komarov <almaz.alexandrovich@paragon-software.com>
Thu, 11 Jul 2024 09:19:44 +0000 (12:19 +0300)
For easy internal debugging.

Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
fs/ntfs3/xattr.c

index 73785dece7a7fc5ced598d9fb392ab99bb799d43..0703e1ae32b2e035fcdfb763702da4111999bc08 100644 (file)
@@ -195,10 +195,8 @@ static ssize_t ntfs_list_ea(struct ntfs_inode *ni, char *buffer,
 {
        const struct EA_INFO *info;
        struct EA_FULL *ea_all = NULL;
-       const struct EA_FULL *ea;
        u32 off, size;
        int err;
-       int ea_size;
        size_t ret;
 
        err = ntfs_read_ea(ni, &ea_all, 0, &info);
@@ -212,16 +210,18 @@ static ssize_t ntfs_list_ea(struct ntfs_inode *ni, char *buffer,
 
        /* Enumerate all xattrs. */
        ret = 0;
-       for (off = 0; off + sizeof(struct EA_FULL) < size; off += ea_size) {
-               ea = Add2Ptr(ea_all, off);
-               ea_size = unpacked_ea_size(ea);
+       off = 0;
+       while (off + sizeof(struct EA_FULL) < size) {
+               const struct EA_FULL *ea = Add2Ptr(ea_all, off);
+               int ea_size = unpacked_ea_size(ea);
+               u8 name_len = ea->name_len;
 
-               if (!ea->name_len)
+               if (!name_len)
                        break;
 
-               if (ea->name_len > ea_size) {
+               if (name_len > ea_size) {
                        ntfs_set_state(ni->mi.sbi, NTFS_DIRTY_ERROR);
-                       err = -EINVAL; /* corrupted fs */
+                       err = -EINVAL; /* corrupted fs. */
                        break;
                }
 
@@ -230,16 +230,17 @@ static ssize_t ntfs_list_ea(struct ntfs_inode *ni, char *buffer,
                        if (off + ea_size > size)
                                break;
 
-                       if (ret + ea->name_len + 1 > bytes_per_buffer) {
+                       if (ret + name_len + 1 > bytes_per_buffer) {
                                err = -ERANGE;
                                goto out;
                        }
 
-                       memcpy(buffer + ret, ea->name, ea->name_len);
-                       buffer[ret + ea->name_len] = 0;
+                       memcpy(buffer + ret, ea->name, name_len);
+                       buffer[ret + name_len] = 0;
                }
 
-               ret += ea->name_len + 1;
+               ret += name_len + 1;
+               off += ea_size;
        }
 
 out: