From: NeilBrown Date: Sun, 10 Oct 2010 23:59:10 +0000 (+1100) Subject: Make filesystem name field variable-length. X-Git-Url: http://git.neil.brown.name/?a=commitdiff_plain;h=dde741971f6dac4df1204850b57843b240d137ea;p=lafs-utils.git Make filesystem name field variable-length. This mirrors similar change in kernel module code. Signed-off-by: NeilBrown --- 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: