[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110831152207.GB32582@thunk.org>
Date: Wed, 31 Aug 2011 11:22:07 -0400
From: Ted Ts'o <tytso@....edu>
To: Ivan Shmakov <oneingray@...il.com>
Cc: linux-ext4@...r.kernel.org
Subject: Re: ext2fs_block_iterate (e2, EXT2_RESIZE_INO, ...) =>
EXT2_ET_FILE_TOO_BIG?
On Wed, Aug 31, 2011 at 05:52:35PM +0700, Ivan Shmakov wrote:
> Curiosly enough, ext2fs_block_iterate () returns
> EXT2FS_BLOCK_ITERATE for EXT2_RESIZE_INO (the binary in question
> is statically linked against libext2fs, 1.41.12 debian 2):
>
> (gdb) print ext2fs_block_iterate (e2, ino, 0, 0, db_add_block, (void *)sp)
> $13 = 2133571410
> (gdb)
>
> Is it because the blocks belonging to this inode aren't supposed
> to belong to the filesystem itself, I wonder?
It returned the error EXT2_ET_FILE_TOO_BIG. From ext2_err.h, which
you can get from the build tree of e2fsprogs, in lib/ext2fs/ext2_err.h
(generated from lib/ext2fs/ext2_err.et):
#define EXT2_ET_FILE_TOO_BIG (2133571410L)
Yeah, the resize inode is a special case. It is specially constructed
to reserve space for new block group descriptor blocks when doing an
online resize. I would suggest for your purposes that you _not_
support the online-resizable file system feature, as it's unneeded
complexity (from what I understand of what you're going to be doing
with the file system).
Regards,
- Ted
P.S. The code to create the reserved inode can be found in
lib/ext2fs/res_gdt.c, in ext2fs_create_resize_inode().
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists