summaryrefslogtreecommitdiffstats
path: root/sys/ufs/ffs/ffs_alloc.c
diff options
context:
space:
mode:
authormckusick <mckusick@FreeBSD.org>2011-06-15 18:05:08 +0000
committermckusick <mckusick@FreeBSD.org>2011-06-15 18:05:08 +0000
commitf433c75fa7942f76c35a192c39eb88870863892f (patch)
treeabebae03c3b54f653a6d31f7a5bf99d4a4d316d2 /sys/ufs/ffs/ffs_alloc.c
parente01ce27c8fd339bdbf551b86aa7a41a930bf773b (diff)
downloadFreeBSD-src-f433c75fa7942f76c35a192c39eb88870863892f.zip
FreeBSD-src-f433c75fa7942f76c35a192c39eb88870863892f.tar.gz
With the restructuring of the block reclaimation code, the notification
messages for a filesystem being out of space need to be moved so that they do not print out until after a failed cleanup attempt. Suggested by: Jeff Roberson
Diffstat (limited to 'sys/ufs/ffs/ffs_alloc.c')
-rw-r--r--sys/ufs/ffs/ffs_alloc.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/ufs/ffs/ffs_alloc.c b/sys/ufs/ffs/ffs_alloc.c
index de34bb8..f1db84d 100644
--- a/sys/ufs/ffs/ffs_alloc.c
+++ b/sys/ufs/ffs/ffs_alloc.c
@@ -116,7 +116,6 @@ static ufs2_daddr_t ffs_clusteralloc(struct inode *, u_int, ufs2_daddr_t, int,
static ino_t ffs_dirpref(struct inode *);
static ufs2_daddr_t ffs_fragextend(struct inode *, u_int, ufs2_daddr_t,
int, int);
-static void ffs_fserr(struct fs *, ino_t, char *);
static ufs2_daddr_t ffs_hashalloc
(struct inode *, u_int, ufs2_daddr_t, int, int, allocfcn_t *);
static ufs2_daddr_t ffs_nodealloccg(struct inode *, u_int, ufs2_daddr_t, int,
@@ -223,7 +222,7 @@ nospace:
goto retry;
}
UFS_UNLOCK(ump);
- if (ppsratecheck(&lastfail, &curfail, 1)) {
+ if (reclaimed > 0 && ppsratecheck(&lastfail, &curfail, 1)) {
ffs_fserr(fs, ip->i_number, "filesystem full");
uprintf("\n%s: write failed, filesystem is full\n",
fs->fs_fsmnt);
@@ -432,7 +431,7 @@ nospace:
UFS_UNLOCK(ump);
if (bp)
brelse(bp);
- if (ppsratecheck(&lastfail, &curfail, 1)) {
+ if (reclaimed > 0 && ppsratecheck(&lastfail, &curfail, 1)) {
ffs_fserr(fs, ip->i_number, "filesystem full");
uprintf("\n%s: write failed, filesystem is full\n",
fs->fs_fsmnt);
@@ -2335,7 +2334,7 @@ ffs_mapsearch(fs, cgp, bpref, allocsiz)
* The form of the error message is:
* fs: error message
*/
-static void
+void
ffs_fserr(fs, inum, cp)
struct fs *fs;
ino_t inum;
OpenPOWER on IntegriCloud