From e246c08ce64a152bed9f271562cf09ac27342773 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Mon, 14 Mar 2011 12:22:17 +1100 Subject: [PATCH] Get lafs_add_device to add free segments to the list. This allows a full mkfs to complete. Also fix a bug in lafs_add_inode. A subsequent call to lafs_get_inode would re-initialise the block. Signed-off-by: NeilBrown --- lib/lafs_add_device.c | 5 +++++ lib/lafs_add_inode.c | 1 + 2 files changed, 6 insertions(+) diff --git a/lib/lafs_add_device.c b/lib/lafs_add_device.c index 819c658..63abceb 100644 --- a/lib/lafs_add_device.c +++ b/lib/lafs_add_device.c @@ -55,6 +55,7 @@ struct lafs_device *lafs_add_device(struct lafs *fs, char *devname, int fd, struct lafs_device *d2; unsigned long long size; int devblk; + loff_t seg; memset(dev, 0, sizeof(*dev)); dev->fd = fd; @@ -145,5 +146,9 @@ struct lafs_device *lafs_add_device(struct lafs *fs, char *devname, int fd, } } + for (seg = 0; seg < dev->segment_count; seg++) + if (lafs_add_free_seg(fs, dev->devnum, seg) == 0) + break; + return dev; } diff --git a/lib/lafs_add_inode.c b/lib/lafs_add_inode.c index 2057613..9ddd6fe 100644 --- a/lib/lafs_add_inode.c +++ b/lib/lafs_add_inode.c @@ -17,6 +17,7 @@ struct lafs_ino *lafs_add_inode(struct lafs_ino *fsys, int inum, int type) return NULL; lafs_inode_init(fsys->fs, db->b.data, type); + db->b.flags |= B_Valid; ino = lafs_import_inode(db); lafs_dirty_blk(&db->b); -- 2.39.5