DragonFly BSD
DragonFly submit List (threaded) for 2005-09
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

FYI: [delphij@FreeBSD.org: [src] cvs commit: src/sys/ufs/ufs ufs_inode.c]


From: Xin LI <delphij@xxxxxxxxxxxxx>
Date: Sat, 24 Sep 2005 04:55:40 +0800

Hi,

Here is a patch that I have just committed to FreeBSD -CURRENT.  A
similiar problem exists in DragonFly as well, which should be
corrected.

The patch adapted for DragonFly can be found at:
	http://www.delphij.net/patch-ufs-dfly

----- Forwarded message from Xin LI <delphij@xxxxxxxxxxx> -----

Date: Fri, 23 Sep 2005 20:50:17 +0000 (GMT)
From: Xin LI <delphij@xxxxxxxxxxx>
Subject: [src] cvs commit: src/sys/ufs/ufs ufs_inode.c
X-Sieve: CMU Sieve 2.2
Delivered-To: delphij@xxxxxxxxxxx
In-Reply-To: <200509232049.j8NKnvIj024351@xxxxxxxxxxxxxxxxxxx>
X-Virus-Scanned: amavisd-new at frontfree.net

delphij     2005-09-23 20:49:57 UTC

  FreeBSD src repository

  Modified files:
    sys/ufs/ufs          ufs_inode.c 
  Log:
  Restore a historical ufs_inactive behavior that has been changed
  in rev. 1.40 of ufs_inode.c, which allows an inode being truncated
  even when the filesystem itself is marked RDONLY.  A subsequent
  call of UFS_TRUNCATE (ffs_truncate) would panic the system as it
  asserts that it can only be called when the filesystem is mounted
  read-write (same changeset, rev. 1.74 of sys/ufs/ffs/ffs_inode.c).
  
  Because ffs_mount() already takes care of sync'ing the filesystem
  to disk before being downgraded to readonly, it appears to be more
  desirable that we should not permit this sort of writes to disk.
  
  This change would fix a panic that occours when read-only mounted
  a corrupted filesystem and doing some file operations.
  
  MT6/5/4 candidate
  
  Reviewed by:    mckusick
  
  Revision  Changes    Path
  1.64      +1 -1      src/sys/ufs/ufs/ufs_inode.c


Index: src/sys/ufs/ufs/ufs_inode.c
diff -u src/sys/ufs/ufs/ufs_inode.c:1.63 src/sys/ufs/ufs/ufs_inode.c:1.64
--- src/sys/ufs/ufs/ufs_inode.c:1.63	Thu Mar 17 11:58:43 2005
+++ src/sys/ufs/ufs/ufs_inode.c	Fri Sep 23 20:49:57 2005
@@ -83,7 +83,7 @@
 		goto out;
 	if (ip->i_effnlink == 0 && DOINGSOFTDEP(vp))
 		softdep_releasefile(ip);
-	if (ip->i_nlink <= 0) {
+	if (ip->i_nlink <= 0 && (vp->v_mount->mnt_flag & MNT_RDONLY) == 0) {
 		(void) vn_write_suspend_wait(vp, NULL, V_WAIT);
 #ifdef QUOTA
 		if (!getinoquota(ip))

----- End forwarded message -----

Cheers,
-- 
Xin LI <delphij frontfree net>	http://www.delphij.net/
See complete headers for GPG key and other information.

Attachment: pgp00004.pgp
Description: PGP signature



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