Re: [PATCH] ext4:fix unexpected error from ext4_reserve_global

From: Mingming Cao
Date: Fri Jun 15 2007 - 19:41:40 EST



On Thu, 2007-06-14 at 19:29 +0400, Dmitriy Monakhov wrote:
> I just cant belive my eyes then i saw this at the first time...
> simple test: strace dd if=/dev/zero of=/mnt/file
>
Thanks for reporting it.

> open("/dev/zero", O_RDONLY) = 0
> close(1) = 0
> open("/mnt/test/file", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 1
> read(0, "\0\0\0\0\0\0\0\0\0"..., 512) = 512
> write(1, "\0\0\0\0\0\0\0\0"..., 512) = 512
> read(0, "\0\0\0\0\0\0\0\0\0"..., 512) = 512
> write(1, "\0\0\0\0\0\0\0\0"..., 512) = -1 ENOENT (No such fil
> e or directory)
>
> This strange error returned from ext4_reserve_global().
> It's just typo because:
> a) In fact this is 100% ENOSPC situation
> b) simular function ext4_reserve_local() returns -ENOSPC
>
I agree.

Patch is put in ext4 patch queue. Alex if you can Ack, that would be
great.


Thanks,

Mingming
> Signed-off-by: Dmitriy Monakhov <dmonakhov@xxxxxxxxxx>
> ---
> fs/ext4/balloc.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
> index 4d7bfd2..43ae8f8 100644
> --- a/fs/ext4/balloc.c
> +++ b/fs/ext4/balloc.c
> @@ -1920,7 +1920,7 @@ int ext4_reserve_global(struct super_block *sb, int blocks)
> {
> struct ext4_sb_info *sbi = EXT4_SB(sb);
> struct ext4_reservation_slot *rs;
> - int i, rc = -ENOENT;
> + int i, rc = -ENOSPC;
> __u64 free = 0;
>
> rs = sbi->s_reservation_slots;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/