From nobody@FreeBSD.org  Tue Nov  9 15:42:48 2010
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 399FF1065693
	for <freebsd-gnats-submit@FreeBSD.org>; Tue,  9 Nov 2010 15:42:48 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21])
	by mx1.freebsd.org (Postfix) with ESMTP id 0E5908FC1D
	for <freebsd-gnats-submit@FreeBSD.org>; Tue,  9 Nov 2010 15:42:48 +0000 (UTC)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.3/8.14.3) with ESMTP id oA9FgleG055696
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 9 Nov 2010 15:42:47 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.3/8.14.3/Submit) id oA9FglEh055695;
	Tue, 9 Nov 2010 15:42:47 GMT
	(envelope-from nobody)
Message-Id: <201011091542.oA9FglEh055695@www.freebsd.org>
Date: Tue, 9 Nov 2010 15:42:47 GMT
From: Pedro Giffuni <giffunip@tutopia.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: msdosfs: Small cleanups from the other NetBSD/OpenBSD
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         152079
>Category:       kern
>Synopsis:       [msdosfs] [patch] Small cleanups from the other NetBSD/OpenBSD
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-fs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Nov 09 15:50:06 UTC 2010
>Closed-Date:    Sun Apr 03 08:38:52 UTC 2011
>Last-Modified:  Sun Apr 03 08:38:52 UTC 2011
>Originator:     Pedro Giffuni
>Release:        8.1-RELEASE
>Organization:
>Environment:
FreeBSD mogwai.giffuni.net 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Mon Jul 19 02:55:53 UTC 2010     root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386

>Description:
Here are some small cleanups to sync with the other BSDs.

denode.h
NetBSD: protect userland exported files against multiple inclusion.
OpenBSD: Move some macros in <msdosfs/denode.h> to outside the #ifdef _KERNEL
so that libkvm doesn't need to define that, thereby avoiding some warnings.


msdosfs_lookup.c
NetBSD: Return EINVAL for rename and delete operations to the
root directory instead of the erroneous EROFS.
>How-To-Repeat:

>Fix:
Patch follows.

Patch attached with submission follows:

--- msdosfs/denode.h.orig	2010-11-09 09:54:16.000000000 +0000
+++ msdosfs/denode.h	2010-11-09 10:11:06.000000000 +0000
@@ -47,6 +47,8 @@
  *
  * October 1992
  */
+#ifndef _FS_MSDOSFS_DENODE_H_
+#define _FS_MSDOSFS_DENODE_H_
 
 /*
  * This is the pc filesystem specific portion of the vnode structure.
@@ -207,8 +209,6 @@
 	     ((dep)->de_Attributes & ATTR_DIRECTORY) ? 0 : (dep)->de_FileSize), \
 	 putushort((dp)->deHighClust, (dep)->de_StartCluster >> 16))
 
-#ifdef _KERNEL
-
 #define	VTODE(vp)	((struct denode *)(vp)->v_data)
 #define	DETOV(de)	((de)->de_vnode)
 
@@ -254,6 +254,8 @@
 #endif
 };
 
+#ifdef _KERNEL
+
 extern struct vop_vector msdosfs_vnodeops;
 
 int msdosfs_lookup(struct vop_cachedlookup_args *);
@@ -279,3 +281,4 @@
 int detrunc(struct denode *dep, u_long length, int flags, struct ucred *cred, struct thread *td);
 int doscheckpath( struct denode *source, struct denode *target);
 #endif	/* _KERNEL */
+#endif /* !_FS_MSDOSFS_DENODE_H_ */
--- msdosfs/msdosfs_lookup.c.orig	2010-11-09 09:49:14.000000000 +0000
+++ msdosfs/msdosfs_lookup.c	2010-11-09 09:50:44.000000000 +0000
@@ -458,7 +458,7 @@
 		 * Don't allow deleting the root.
 		 */
 		if (blkoff == MSDOSFSROOT_OFS)
-			return EROFS;				/* really? XXX */
+			return EINVAL;
 
 		/*
 		 * Write access to directory required to delete files.
@@ -491,7 +491,7 @@
 	 */
 	if (nameiop == RENAME && (flags & ISLASTCN)) {
 		if (blkoff == MSDOSFSROOT_OFS)
-			return EROFS;				/* really? XXX */
+			return EINVAL;
 
 		error = VOP_ACCESS(vdp, VWRITE, cnp->cn_cred, cnp->cn_thread);
 		if (error)


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->freebsd-fs 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Fri Nov 12 09:32:29 UTC 2010 
Responsible-Changed-Why:  
Over to maintainer(s). 

http://www.freebsd.org/cgi/query-pr.cgi?pr=152079 

From: "Pedro F. Giffuni" <giffunip@tutopia.com>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/152079: [msdosfs] [patch] Small cleanups from the other NetBSD/OpenBSD
Date: Fri, 25 Mar 2011 09:09:04 -0700 (PDT)

 --0-691748129-1301069344=:71034
 Content-Type: text/plain; charset=us-ascii
 
 Include a small fix from NetBSD:
 
 msdosfs_vnops.c Revision 1.73:
 Remove a vnode reference leak from msdosfs_rename. Release tdvp if either
 doscheckpath() or relookup() fails.
 
 Adjust test fs/vfs/t_vnops.c and remove the link count test for msdos.
 
 Fixes NetBSD PR #44661
 
 
 
       
 --0-691748129-1301069344=:71034
 Content-Type: text/plain; name="patch-msdosfs.txt"
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment; filename="patch-msdosfs.txt"
 
 ZGlmZiAtcnUgbXNkb3Nmcy5vcmlnL2Rlbm9kZS5oIG1zZG9zZnMvZGVub2Rl
 LmgKLS0tIG1zZG9zZnMub3JpZy9kZW5vZGUuaAkyMDExLTAzLTI1IDEwOjM0
 OjQxLjAwMDAwMDAwMCArMDAwMAorKysgbXNkb3Nmcy9kZW5vZGUuaAkyMDEx
 LTAzLTI1IDEwOjM3OjA3LjAwMDAwMDAwMCArMDAwMApAQCAtNDcsNiArNDcs
 OCBAQAogICoKICAqIE9jdG9iZXIgMTk5MgogICovCisjaWZuZGVmIF9GU19N
 U0RPU0ZTX0RFTk9ERV9IXworI2RlZmluZSBfRlNfTVNET1NGU19ERU5PREVf
 SF8KIAogLyoKICAqIFRoaXMgaXMgdGhlIHBjIGZpbGVzeXN0ZW0gc3BlY2lm
 aWMgcG9ydGlvbiBvZiB0aGUgdm5vZGUgc3RydWN0dXJlLgpAQCAtMjA3LDgg
 KzIwOSw2IEBACiAJICAgICAoKGRlcCktPmRlX0F0dHJpYnV0ZXMgJiBBVFRS
 X0RJUkVDVE9SWSkgPyAwIDogKGRlcCktPmRlX0ZpbGVTaXplKSwgXAogCSBw
 dXR1c2hvcnQoKGRwKS0+ZGVIaWdoQ2x1c3QsIChkZXApLT5kZV9TdGFydENs
 dXN0ZXIgPj4gMTYpKQogCi0jaWZkZWYgX0tFUk5FTAotCiAjZGVmaW5lCVZU
 T0RFKHZwKQkoKHN0cnVjdCBkZW5vZGUgKikodnApLT52X2RhdGEpCiAjZGVm
 aW5lCURFVE9WKGRlKQkoKGRlKS0+ZGVfdm5vZGUpCiAKQEAgLTI1NCw2ICsy
 NTQsOCBAQAogI2VuZGlmCiB9OwogCisjaWZkZWYgX0tFUk5FTAorCiBleHRl
 cm4gc3RydWN0IHZvcF92ZWN0b3IgbXNkb3Nmc192bm9kZW9wczsKIAogaW50
 IG1zZG9zZnNfbG9va3VwKHN0cnVjdCB2b3BfY2FjaGVkbG9va3VwX2FyZ3Mg
 Kik7CkBAIC0yNzksMyArMjgxLDQgQEAKIGludCBkZXRydW5jKHN0cnVjdCBk
 ZW5vZGUgKmRlcCwgdV9sb25nIGxlbmd0aCwgaW50IGZsYWdzLCBzdHJ1Y3Qg
 dWNyZWQgKmNyZWQsIHN0cnVjdCB0aHJlYWQgKnRkKTsKIGludCBkb3NjaGVj
 a3BhdGgoIHN0cnVjdCBkZW5vZGUgKnNvdXJjZSwgc3RydWN0IGRlbm9kZSAq
 dGFyZ2V0KTsKICNlbmRpZgkvKiBfS0VSTkVMICovCisjZW5kaWYgLyogIV9G
 U19NU0RPU0ZTX0RFTk9ERV9IXyAqLwpkaWZmIC1ydSBtc2Rvc2ZzLm9yaWcv
 bXNkb3Nmc19sb29rdXAuYyBtc2Rvc2ZzL21zZG9zZnNfbG9va3VwLmMKLS0t
 IG1zZG9zZnMub3JpZy9tc2Rvc2ZzX2xvb2t1cC5jCTIwMTEtMDMtMjUgMTA6
 MzQ6NDEuMDAwMDAwMDAwICswMDAwCisrKyBtc2Rvc2ZzL21zZG9zZnNfbG9v
 a3VwLmMJMjAxMS0wMy0yNSAxMDozNzowNy4wMDAwMDAwMDAgKzAwMDAKQEAg
 LTQ1OCw3ICs0NTgsNyBAQAogCQkgKiBEb24ndCBhbGxvdyBkZWxldGluZyB0
 aGUgcm9vdC4KIAkJICovCiAJCWlmIChibGtvZmYgPT0gTVNET1NGU1JPT1Rf
 T0ZTKQotCQkJcmV0dXJuIEVST0ZTOwkJCQkvKiByZWFsbHk/IFhYWCAqLwor
 CQkJcmV0dXJuIEVJTlZBTDsKIAogCQkvKgogCQkgKiBXcml0ZSBhY2Nlc3Mg
 dG8gZGlyZWN0b3J5IHJlcXVpcmVkIHRvIGRlbGV0ZSBmaWxlcy4KQEAgLTQ5
 MSw3ICs0OTEsNyBAQAogCSAqLwogCWlmIChuYW1laW9wID09IFJFTkFNRSAm
 JiAoZmxhZ3MgJiBJU0xBU1RDTikpIHsKIAkJaWYgKGJsa29mZiA9PSBNU0RP
 U0ZTUk9PVF9PRlMpCi0JCQlyZXR1cm4gRVJPRlM7CQkJCS8qIHJlYWxseT8g
 WFhYICovCisJCQlyZXR1cm4gRUlOVkFMOwogCiAJCWVycm9yID0gVk9QX0FD
 Q0VTUyh2ZHAsIFZXUklURSwgY25wLT5jbl9jcmVkLCBjbnAtPmNuX3RocmVh
 ZCk7CiAJCWlmIChlcnJvcikKZGlmZiAtcnUgbXNkb3Nmcy5vcmlnL21zZG9z
 ZnNfdm5vcHMuYyBtc2Rvc2ZzL21zZG9zZnNfdm5vcHMuYwotLS0gbXNkb3Nm
 cy5vcmlnL21zZG9zZnNfdm5vcHMuYwkyMDExLTAzLTI1IDEwOjM0OjQxLjAw
 MDAwMDAwMCArMDAwMAorKysgbXNkb3Nmcy9tc2Rvc2ZzX3Zub3BzLmMJMjAx
 MS0wMy0yNSAxMTowMDo1NS4wMDAwMDAwMDAgKzAwMDAKQEAgLTEwOTQsMTIg
 KzEwOTQsMTIgQEAKIAkJICovCiAJCWVycm9yID0gZG9zY2hlY2twYXRoKGlw
 LCBkcCk7CiAJCWlmIChlcnJvcikKLQkJCWdvdG8gb3V0OworCQkJZ290byBi
 YWQ7CiAJCWlmICgodGNucC0+Y25fZmxhZ3MgJiBTQVZFU1RBUlQpID09IDAp
 CiAJCQlwYW5pYygibXNkb3Nmc19yZW5hbWU6IGxvc3QgdG8gc3RhcnRkaXIi
 KTsKIAkJZXJyb3IgPSByZWxvb2t1cCh0ZHZwLCAmdHZwLCB0Y25wKTsKIAkJ
 aWYgKGVycm9yKQotCQkJZ290byBvdXQ7CisJCQlnb3RvIGJhZDsKIAkJZHAg
 PSBWVE9ERSh0ZHZwKTsKIAkJeHAgPSB0dnAgPyBWVE9ERSh0dnApIDogTlVM
 TDsKIAl9CkBAIC0xMjgzLDcgKzEyODMsNiBAQAogCWlmICh4cCkKIAkJdnB1
 dCh0dnApOwogCXZwdXQodGR2cCk7Ci1vdXQ6CiAJaXAtPmRlX2ZsYWcgJj0g
 fkRFX1JFTkFNRTsKIAl2cmVsZShmZHZwKTsKIAl2cmVsZShmdnApOwo=
 
 --0-691748129-1301069344=:71034--

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/152079: commit references a PR
Date: Fri, 25 Mar 2011 22:31:42 +0000 (UTC)

 Author: kib
 Date: Fri Mar 25 22:31:28 2011
 New Revision: 220014
 URL: http://svn.freebsd.org/changeset/base/220014
 
 Log:
   Report EBUSY instead of EROFS for attempt of deleting or renaming the
   root directory of msdosfs mount. The VFS code would handle deletion
   case itself too, assuming VV_ROOT flag is not lost. The msdosfs_rename()
   should also note attempt to rename root via doscheckpath() or different
   mount point check leading to EXDEV. Nonetheless, keep the checks for now.
   
   The change is inspired by NetBSD change referenced in PR, but return
   EBUSY like kern_unlinkat() does.
   
   PR:	kern/152079
   MFC after:	1 week
 
 Modified:
   head/sys/fs/msdosfs/msdosfs_lookup.c
 
 Modified: head/sys/fs/msdosfs/msdosfs_lookup.c
 ==============================================================================
 --- head/sys/fs/msdosfs/msdosfs_lookup.c	Fri Mar 25 22:17:24 2011	(r220013)
 +++ head/sys/fs/msdosfs/msdosfs_lookup.c	Fri Mar 25 22:31:28 2011	(r220014)
 @@ -458,7 +458,7 @@ foundroot:
  		 * Don't allow deleting the root.
  		 */
  		if (blkoff == MSDOSFSROOT_OFS)
 -			return EROFS;				/* really? XXX */
 +			return (EBUSY);
  
  		/*
  		 * Write access to directory required to delete files.
 @@ -491,7 +491,7 @@ foundroot:
  	 */
  	if (nameiop == RENAME && (flags & ISLASTCN)) {
  		if (blkoff == MSDOSFSROOT_OFS)
 -			return EROFS;				/* really? XXX */
 +			return (EBUSY);
  
  		error = VOP_ACCESS(vdp, VWRITE, cnp->cn_cred, cnp->cn_thread);
  		if (error)
 _______________________________________________
 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-unsubscribe@freebsd.org"
 

From: "Pedro F. Giffuni" <giffunip@tutopia.com>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/152079: msdosfs: Small cleanups from the other NetBSD/OpenBSD
Date: Sat, 26 Mar 2011 09:54:03 -0700 (PDT)

 Please close this PR.
 
 Apparently the last submission would introduce a panic in FreeBSD.
 
 
       
State-Changed-From-To: open->closed 
State-Changed-By: jh 
State-Changed-When: Sun Apr 3 08:38:51 UTC 2011 
State-Changed-Why:  
Closed at submitter's request. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=152079 
>Unformatted:
