Whamcloud - gitweb
LU-17043 enc: fix osd lookup cache for long encrypted names
authorSebastien Buisson <sbuisson@ddn.com>
Mon, 21 Aug 2023 09:44:32 +0000 (11:44 +0200)
committerAndreas Dilger <adilger@whamcloud.com>
Mon, 28 Aug 2023 16:17:08 +0000 (16:17 +0000)
Fix osd lookup cache to support files with long encrypted names.
Those encrypted names can be up to 256 bytes, not NUL terminated.

Lustre-change: https://review.whamcloud.com/52016
Lustre-commit: TBD (from 51a526bfa61bb5391a7ac33108e264f590cd3f0c)

Fixes: 07a7befdc1 ("LU-16405 osd: lookup cache")
Signed-off-by: Sebastien Buisson <sbuisson@ddn.com>
Change-Id: Ica2329c8a0990395307a14fe9bb9d43db3b364ed
Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/52017
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
lustre/osd-ldiskfs/osd_handler.c
lustre/osd-ldiskfs/osd_internal.h

index 2c783bf..56ecce2 100644 (file)
@@ -7857,7 +7857,7 @@ void osd_olc_save(const struct lu_env *env, struct osd_object *obj,
        entry->lce_obj.lco_gen = obj->oo_inode->i_generation;
        entry->lce_obj.lco_version = iversion;
 
-       LASSERT(ln->ln_namelen <= LDISKFS_NAME_LEN);
+       LASSERT(ln->ln_namelen <= LDISKFS_NAME_LEN + 1);
        entry->lce_namelen = ln->ln_namelen;
        memcpy(entry->lce_name, ln->ln_name, ln->ln_namelen);
        memcpy(&entry->lce_fid, rec, sizeof(entry->lce_fid));
index 09ad631..72c1d72 100644 (file)
@@ -664,7 +664,7 @@ struct osd_lookup_cache_entry {
        struct lu_fid   lce_fid;
        short           lce_rc;
        short           lce_namelen;
-       char            lce_name[LDISKFS_NAME_LEN];
+       char            lce_name[LDISKFS_NAME_LEN + 1];
 };
 
 #define OSD_LOOKUP_CACHE_MAX   3