From dde741971f6dac4df1204850b57843b240d137ea Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Mon, 11 Oct 2010 10:59:10 +1100 Subject: [PATCH] Make filesystem name field variable-length. This mirrors similar change in kernel module code. Signed-off-by: NeilBrown --- include/lafs/layout.h | 4 ++-- include/lafs/struct.h | 2 +- lib/lafs_import_inode_buf.c | 3 +-- lib/lafs_inode_fillblock.c | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/include/lafs/layout.h b/include/lafs/layout.h index c1e5ea2..41987fd 100644 --- a/include/lafs/layout.h +++ b/include/lafs/layout.h @@ -130,7 +130,7 @@ struct la_inode { #define File_nonlogged 1 union { struct fs_metadata { - /* 116 bytes */ + /* 52 bytes plus name */ u64 update_time; u64 blocks_used; /* data+index */ u64 blocks_allowed; @@ -139,7 +139,7 @@ struct la_inode { u32 quota_inodes[3]; u16 snapshot_usage_table; u16 pad; - char name[64]; + char name[0]; } fs; struct inodemap_metadata { u32 size; diff --git a/include/lafs/struct.h b/include/lafs/struct.h index 8968d42..70bfcfc 100644 --- a/include/lafs/struct.h +++ b/include/lafs/struct.h @@ -121,7 +121,7 @@ struct lafs_ino { uint32_t inodes_used; uint32_t quota_inums[3]; struct inode *quota_inodes[3]; - char name[65]; + char *name; } fs; struct inodemap_md { uint32_t size; diff --git a/lib/lafs_import_inode_buf.c b/lib/lafs_import_inode_buf.c index 3ba13b0..4c9d2db 100644 --- a/lib/lafs_import_inode_buf.c +++ b/lib/lafs_import_inode_buf.c @@ -65,8 +65,7 @@ static int inode_load(struct lafs_ino *ino, struct la_inode *lai) i->quota_inums[1] = __le32_to_cpu(l->quota_inodes[1]); i->quota_inums[2] = __le32_to_cpu(l->quota_inodes[2]); i->quota_inodes[0] = i->quota_inodes[1] = i->quota_inodes[2] = NULL; - memcpy(i->name, l->name, 64); - i->name[64] = 0; + i->name = NULL; /* FIXME */ break; } case TypeInodeMap: diff --git a/lib/lafs_inode_fillblock.c b/lib/lafs_inode_fillblock.c index 90b5da6..bb14da2 100644 --- a/lib/lafs_inode_fillblock.c +++ b/lib/lafs_inode_fillblock.c @@ -36,7 +36,7 @@ void lafs_inode_fillblock(struct lafs_ino *ino, char *buf) sfs->quota_inodes[0] = __cpu_to_le32(mfs->quota_inums[0]); sfs->quota_inodes[1] = __cpu_to_le32(mfs->quota_inums[1]); sfs->quota_inodes[2] = __cpu_to_le32(mfs->quota_inums[2]); - memcpy(sfs->name, mfs->name, 64); + /* FIXME do something with name */ break; } case TypeInodeMap: -- 2.39.5