cvs commit: src/sys/ufs/ffs ffs_alloc.c
Pawel Jakub Dawidek
pjd at FreeBSD.org
Thu Oct 27 00:09:11 PDT 2005
On Thu, Oct 27, 2005 at 08:55:46AM +0200, Pawel Jakub Dawidek wrote:
+> On Mon, Oct 03, 2005 at 09:57:43PM +0000, Don Lewis wrote:
+> +> truckman 2005-10-03 21:57:43 UTC
+> +>
+> +> FreeBSD src repository
+> +>
+> +> Modified files:
+> +> sys/ufs/ffs ffs_alloc.c
+> +> Log:
+> +> Initialize the inode i_flag field in ffs_valloc() to clean up any
+> +> stale flag bits left over from before the inode was recycled.
+> +>
+> +> Without this change, a leftover IN_SPACECOUNTED flag could prevent
+> +> softdep_freefile() and softdep_releasefile() from incrementing
+> +> fs_pendinginodes. Because handle_workitem_freefile() unconditionally
+> +> decrements fs_pendinginodes, a negative value could be reported at
+> +> file system unmount time with a message like:
+> +> unmount pending error: blocks 0 files -3
+> +> The pending block count in fs_pendingblocks could also be negative
+> +> for similar reasons. These errors can cause the data returned by
+> +> statfs() to be slightly incorrect. Some other cleanup code in
+> +> softdep_releasefile() could also be incorrectly bypassed.
+>
+> Not sure how much the problem I'm seeing is related to this, but after
+> clean reboot, when I do:
+>
+> # mount -u -r /usr
+>
+> I get: /usr: update error: blocks 24 files 1
+>
+> Any idea what's going on? This file system is using soft-updates.
+> Maybe it remounts itself to read-only before flushing buffers?
+>
+> Not sure how old is the problem, but could be very old. Before GEOM
+> device was always open RW, now RO means RO and the order could be
+> wrong somewhere.
I fsck'ed this "clean" file system and:
** Phase 4 - Check Reference Counts
UNREF FILE I=2357670 OWNER=pjd MODE=100600
SIZE=258 MTIME=Oct 27 08:40 2005
CLEAR? [yn] y
UNREF FILE I=8101888 OWNER=root MODE=100644
SIZE=10573 MTIME=Oct 27 08:41 2005
CLEAR? [yn] y
UNREF FILE I=8102436 OWNER=root MODE=100644
SIZE=10573 MTIME=Oct 21 12:04 2005
CLEAR? [yn] y
** Phase 5 - Check Cyl groups
FREE BLK COUNT(S) WRONG IN SUPERBLK
SALVAGE? [yn] y
SUMMARY INFORMATION BAD
SALVAGE? [yn] y
BLK(S) MISSING IN BIT MAPS
SALVAGE? [yn] y
887288 files, 28777941 used, 3987616 free (251064 frags, 467069 blocks, 0.8% fra
gmentation)
***** FILE SYSTEM WAS MODIFIED *****
Doing:
# sync;sync;sync;mount -u -r /usr
worked just fine when I tried.
--
Pawel Jakub Dawidek http://www.wheel.pl
pjd at FreeBSD.org http://www.FreeBSD.org
FreeBSD committer Am I Evil? Yes, I Am!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/cvs-src/attachments/20051027/14f2b3f4/attachment.bin
More information about the cvs-src
mailing list