Author: avg
Date: Sun Oct 28 16:06:55 2012
New Revision: 242240
URL: http://svn.freebsd.org/changeset/base/242240

Log:
  MFC r241628: zfs: make use of getnewvnode_reserve in zfs_mknode and zfs_zget

Modified:
  stable/9/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/cddl/contrib/opensolaris/   (props changed)

Modified: stable/9/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
==============================================================================
--- stable/9/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c Sun Oct 
28 15:59:30 2012        (r242239)
+++ stable/9/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c Sun Oct 
28 16:06:55 2012        (r242240)
@@ -855,6 +855,7 @@ zfs_mknode(znode_t *dzp, vattr_t *vap, d
                }
        }
 
+       getnewvnode_reserve(1);
        ZFS_OBJ_HOLD_ENTER(zfsvfs, obj);
        VERIFY(0 == sa_buf_hold(zfsvfs->z_os, obj, NULL, &db));
 
@@ -1041,6 +1042,7 @@ zfs_mknode(znode_t *dzp, vattr_t *vap, d
                KASSERT(err == 0, ("insmntque() failed: error %d", err));
        }
        ZFS_OBJ_HOLD_EXIT(zfsvfs, obj);
+       getnewvnode_drop_reserve();
 }
 
 /*
@@ -1151,12 +1153,14 @@ zfs_zget(zfsvfs_t *zfsvfs, uint64_t obj_
 
        *zpp = NULL;
 
+       getnewvnode_reserve(1);
 again:
        ZFS_OBJ_HOLD_ENTER(zfsvfs, obj_num);
 
        err = sa_buf_hold(zfsvfs->z_os, obj_num, NULL, &db);
        if (err) {
                ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num);
+               getnewvnode_drop_reserve();
                return (err);
        }
 
@@ -1167,6 +1171,7 @@ again:
            doi.doi_bonus_size < sizeof (znode_phys_t)))) {
                sa_buf_rele(db, NULL);
                ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num);
+               getnewvnode_drop_reserve();
                return (EINVAL);
        }
 
@@ -1230,6 +1235,7 @@ again:
                sa_buf_rele(db, NULL);
                mutex_exit(&zp->z_lock);
                ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num);
+               getnewvnode_drop_reserve();
                return (err);
        }
 
@@ -1265,6 +1271,7 @@ again:
                }
        }
        ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num);
+       getnewvnode_drop_reserve();
        return (err);
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to