diff options
author | jeff <jeff@FreeBSD.org> | 2011-06-10 22:18:25 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2011-06-10 22:18:25 +0000 |
commit | 2cdd0660a5978b8ea67c7857423395ceb93c8439 (patch) | |
tree | 8e7c42cbe351d7c8bebfa60e680a18806fc9e787 | |
parent | 02186557c493060453d6404a21286d5ece195663 (diff) | |
download | FreeBSD-src-2cdd0660a5978b8ea67c7857423395ceb93c8439.zip FreeBSD-src-2cdd0660a5978b8ea67c7857423395ceb93c8439.tar.gz |
- If the fsync in ufs_direnter fails SUJ can later panic because we have
partially added a name. Allow ufs_direnter() to continue in the
hopes that it is a transient error. If it is not, the directory
is corrupted already from IO errors and writing this new block
is not likely to make things worse.
-rw-r--r-- | sys/ufs/ufs/ufs_lookup.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/ufs/ufs/ufs_lookup.c b/sys/ufs/ufs/ufs_lookup.c index 45ebea1..391b3e9 100644 --- a/sys/ufs/ufs/ufs_lookup.c +++ b/sys/ufs/ufs/ufs_lookup.c @@ -967,7 +967,7 @@ ufs_direnter(dvp, tvp, dirp, cnp, newdirbp, isrename) return (0); if (tvp != NULL) VOP_UNLOCK(tvp, 0); - error = VOP_FSYNC(dvp, MNT_WAIT, td); + (void) VOP_FSYNC(dvp, MNT_WAIT, td); if (tvp != NULL) vn_lock(tvp, LK_EXCLUSIVE | LK_RETRY); return (error); |