ext3 behaviour when no space on disk

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



--=-a+vH8GfNC+r/qMRekhdB
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

On Tue, 2002-06-04 at 00:06, Andrew Morton wrote:
> Memory fails me...  But no, we shouldn't be treating ENOSPC in that
> manner.  How about this?

I'm getting some similar interesting errors to this - unfortunately I
don't now have the Oops listing (too many things died on the box).

This is on a 2.4.19-pre3 box - too early to have Stephen's last batch of
updates applied, so I am building that now.

However there are some:-
  kernel: EXT3-fs error (device ida0(72,8)) in ext3_new_inode: error 28

[device is a compaq RAID controller], error 28 is ENOSPC.

I see in ialloc.c that there is already some special treatment for
ENOSPC that would skip around the ext3_std_error call, but then ENOSPC
is also used for other purposes ("Free inodes count corrupted in group
%d").... 

In my case I think I probably am hitting the limit of inodes on the
system - after getting the box back into action it was 80% inodes used
all in one directory and the app may well have chewed some more.

Is conditionalising the ext3_std_error call like in Andrew's patch a
sensible thing to do in this case?  I've attached the equivalent patch
(against 2.4.19-pre10-ac2).

	Nigel.
-- 
[ Nigel Metheringham           Nigel.Metheringham@InTechnology.co.uk ]
[ - Comments in this message are my own and not ITO opinion/policy - ]

--=-a+vH8GfNC+r/qMRekhdB
Content-Disposition: attachment; filename=ext3-enospc.patch
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; name=ext3-enospc.patch; charset=ISO-8859-1

# Prevent ext3_std_error being called on inode ENOSPC
#=20
# To apply this patch:
# STEP 1: Chdir to the source directory.
# STEP 2: Run the 'applypatch' program with this patch file as input.
#
# If you do not have 'applypatch', it is part of the 'makepatch' package
# that you can fetch from the Comprehensive Perl Archive Network:
# http://www.perl.com/CPAN/authors/Johan_Vromans/makepatch-x.y.tar.gz
# In the above URL, 'x' should be 2 or higher.
#
# To apply this patch without the use of 'applypatch':
# STEP 1: Chdir to the source directory.
# STEP 2: Run the 'patch' program with this file as input.
#
#### End of Preamble ####

#### Patch data follows ####
diff -u 'zkernel-2.4.18.orig/linux/fs/ext3/ialloc.c' 'zkernel-2.4.18/linux/=
fs/ext3/ialloc.c'
Index: ./fs/ext3/ialloc.c
--- ./fs/ext3/ialloc.c	Wed Jun 12 11:23:42 2002
+++ ./fs/ext3/ialloc.c	Wed Jun 12 11:57:10 2002
@@ -523,7 +523,8 @@
 	return inode;
=20
 fail:
-	ext3_std_error(sb, err);
+	if (err !=3D -ENOSPC)
+		ext3_std_error(sb, err);
 out:
 	unlock_super(sb);
 	iput(inode);
#### End of Patch data ####

#### ApplyPatch data follows ####
# Data version        : 1.0
# Date generated      : Wed Jun 12 12:05:17 2002
# Generated by        : makepatch 2.00
# Recurse directories : Yes
# Excluded files      : (\A|.*/)CVS(/.*|\Z)
#                       (\A|.*/)RCS(/.*|\Z)
#                       ,v\Z
#                       (\A|.*/)SCCS(/.*|\Z)
#                       (\A|.*/)[sp]\..+\Z
# p 'fs/ext3/ialloc.c' 19634 1023879430 0100644
#### End of ApplyPatch data ####

#### End of Patch kit [created: Wed Jun 12 12:05:17 2002] ####
#### Checksum: 48 1599 53305 ####

--=-a+vH8GfNC+r/qMRekhdB--





[Index of Archives]         [Linux RAID]     [Kernel Development]     [Red Hat Install]     [Video 4 Linux]     [Postgresql]     [Fedora]     [Gimp]     [Yosemite News]

  Powered by Linux