On Sun, Jun 30, 2013 at 12:51:44PM +0100, Filipe David Borba Manana wrote: > Assert that the write of the device tree root succeeds. > This verification is currently done for all other tree > roots, however it was missing for the device tree root. > > Would this tree root write fail, but all others succeed, > it would lead to a corrupted/incomplete btrfs filesystem. > > Signed-off-by: Filipe David Borba Manana <fdmanana@xxxxxxxxx> > --- > utils.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/utils.c b/utils.c > index 7b4cd74..43d93f1 100644 > --- a/utils.c > +++ b/utils.c > @@ -381,6 +381,7 @@ int make_btrfs(int fd, const char *device, const char *label, > btrfs_set_header_nritems(buf, nritems); > csum_tree_block_size(buf, BTRFS_CRC32_SIZE, 0); > ret = pwrite(fd, buf->data, leafsize, blocks[4]); > + BUG_ON(ret != leafsize); Please fix also the 2nd instance where the return value check is missing 344 btrfs_set_header_bytenr(buf, blocks[3]); 345 btrfs_set_header_owner(buf, BTRFS_CHUNK_TREE_OBJECTID); 346 btrfs_set_header_nritems(buf, nritems); 347 csum_tree_block_size(buf, BTRFS_CRC32_SIZE, 0); 348 ret = pwrite(fd, buf->data, leafsize, blocks[3]); 349 350 /* create the device tree */ 351 memset(buf->data+sizeof(struct btrfs_header), 0, 352 leafsize-sizeof(struct btrfs_header)); > > /* create the FS root */ > memset(buf->data+sizeof(struct btrfs_header), 0, Also, replacing the BUG_ON with something else would be nice of course. thanks, david -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
