changeset 13722:14af7b9740e6

2614 nfs logging works incorrectly Reviewed by: Albert Lee <trisk@nexenta.com> Reviewed by: T Nguyen <truongqnguien@gmail.com> Reviewed by: Garrett D'Amore <garrett@damore.org> Approved by: Gordon Ross <gwr@nexenta.com>
author Vitaliy Gusev <gusev.vitaliy@nexenta.com>
date Tue, 12 Jun 2012 23:41:19 -0400
parents 5b51a16a186f
children 3297c26a553a
files usr/src/cmd/fs.d/nfs/svc/Makefile usr/src/cmd/fs.d/nfs/svc/nfs-server usr/src/cmd/fs.d/nfs/svc/nfslogd.xml usr/src/pkg/manifests/service-file-system-nfs.mf
diffstat 4 files changed, 75 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/cmd/fs.d/nfs/svc/Makefile	Mon Jun 11 14:15:20 2012 -0400
+++ b/usr/src/cmd/fs.d/nfs/svc/Makefile	Tue Jun 12 23:41:19 2012 -0400
@@ -22,11 +22,13 @@
 # Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
-# ident	"%Z%%M%	%I%	%E% SMI"
+# Copyright 2012 Nexenta Systems, Inc.  All rights reserved.
+
+#
 #
 
 MANIFEST=	server.xml client.xml rquota.xml mapid.xml nlockmgr.xml \
-		status.xml cbd.xml
+		status.xml cbd.xml nfslogd.xml
 SVCMETHOD=	nfs-server nfs-client nlockmgr
 
 include $(SRC)/cmd/Makefile.cmd
--- a/usr/src/cmd/fs.d/nfs/svc/nfs-server	Mon Jun 11 14:15:20 2012 -0400
+++ b/usr/src/cmd/fs.d/nfs/svc/nfs-server	Tue Jun 12 23:41:19 2012 -0400
@@ -21,6 +21,7 @@
 #
 #
 # Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright 2012 Nexenta Systems, Inc.  All rights reserved.
 #
 
 # Start/stop processes required for server NFS
@@ -132,26 +133,6 @@
 
 	/usr/sbin/sharemgr stop -P nfs -a
 
-	#
-	# Wait up to 10 seconds for nfslogd to gracefully handle SIGHUP
-	#
-	/usr/bin/pkill -HUP -x -u 0 -z $zone nfslogd
-	wtime=10
-
-	while [ $wtime -gt 0 ]; do
-		/usr/bin/pgrep -x -u 0 -z $zone nfslogd >/dev/null || break
-		wtime=`expr $wtime - 1`
-		sleep 1
-	done
-
-	#
-	# Kill nfslogd more forcefully if it did not shutdown during
-	# the grace period
-	#
-	if [ $wtime -eq 0 ]; then
-		/usr/bin/pkill -TERM -x -u 0 -z $zone nfslogd
-	fi
-
 	# Kill any processes left in service contract
 	smf_kill_contract $2 TERM 1
 	[ $? -ne 0 ] && exit 1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/fs.d/nfs/svc/nfslogd.xml	Tue Jun 12 23:41:19 2012 -0400
@@ -0,0 +1,68 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<!--
+  This file and its contents are supplied under the terms of the
+  Common Development and Distribution License ("CDDL"), version 1.0.
+  You may only use this file in accordance with the terms of version
+  1.0 of the CDDL.
+
+  A full copy of the text of the CDDL should have accompanied this
+  source.  A copy of the CDDL is also available via the Internet at
+  http://www.illumos.org/license/CDDL.
+
+
+  Copyright 2012 Nexenta Systems, Inc.  All rights reserved.
+-->
+
+<service_bundle type='manifest' name='SUNWnfssr:nfslogd'>
+
+<service
+	name='network/nfs/log'
+	type='service'
+	version='1'>
+
+	<dependency name='nfs-server'
+	    grouping='require_all'
+	    restart_on='refresh'
+	    type='service'>
+		<service_fmri value='svc:/network/nfs/server' />
+	</dependency>
+
+	<dependency name='filesystem-minimal'
+	    grouping='require_all'
+	    restart_on='error'
+	    type='service'>
+		<service_fmri value='svc:/system/filesystem/minimal' />
+	</dependency>
+
+	<exec_method
+	    type='method'
+	    name='start'
+	    exec='/usr/lib/nfs/nfslogd'
+	    timeout_seconds='60' />
+
+	<exec_method
+	    type='method'
+	    name='stop'
+	    exec=':kill -TERM'
+	    timeout_seconds='10' />
+
+	<instance name='default' enabled='false'>
+	</instance>
+
+	<stability value='Stable' />
+
+	<template>
+		<common_name>
+			<loctext xml:lang='C'>
+				NFS log daemon
+			</loctext>
+		</common_name>
+		<documentation>
+			<manpage title='nfslogd' section='1M'
+				manpath='/usr/share/man' />
+		</documentation>
+	</template>
+</service>
+
+</service_bundle>
--- a/usr/src/pkg/manifests/service-file-system-nfs.mf	Mon Jun 11 14:15:20 2012 -0400
+++ b/usr/src/pkg/manifests/service-file-system-nfs.mf	Tue Jun 12 23:41:19 2012 -0400
@@ -21,6 +21,7 @@
 
 #
 # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright 2012 Nexenta Systems, Inc.  All rights reserved.
 #
 
 set name=pkg.fmri value=pkg:/service/file-system/nfs@$(PKGVERS)
@@ -62,6 +63,7 @@
     original_name=SUNWnfss:etc/nfs/nfslog.conf preserve=true
 file path=kernel/misc/$(ARCH64)/nfssrv group=sys mode=0755
 $(i386_ONLY)file path=kernel/misc/nfssrv group=sys mode=0755
+file path=lib/svc/manifest/network/nfs/nfslogd.xml group=sys mode=0444
 file path=lib/svc/manifest/network/nfs/rquota.xml group=sys mode=0444
 file path=lib/svc/manifest/network/nfs/server.xml group=sys mode=0444
 file path=lib/svc/method/nfs-server mode=0555