summaryrefslogtreecommitdiffstats
path: root/sys/fs/msdosfs
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2011-03-25 22:31:28 +0000
committerkib <kib@FreeBSD.org>2011-03-25 22:31:28 +0000
commite672feb26e335afc5801c618b8d3e24ee7d29414 (patch)
tree2a648f759d5399c02b8f19408a13af4b0733b0ad /sys/fs/msdosfs
parent34341b078342fc7f27813d33fb428d9c2cdb1950 (diff)
downloadFreeBSD-src-e672feb26e335afc5801c618b8d3e24ee7d29414.zip
FreeBSD-src-e672feb26e335afc5801c618b8d3e24ee7d29414.tar.gz
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
Diffstat (limited to 'sys/fs/msdosfs')
-rw-r--r--sys/fs/msdosfs/msdosfs_lookup.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/fs/msdosfs/msdosfs_lookup.c b/sys/fs/msdosfs/msdosfs_lookup.c
index 51b6dc8..04957d5 100644
--- a/sys/fs/msdosfs/msdosfs_lookup.c
+++ b/sys/fs/msdosfs/msdosfs_lookup.c
@@ -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)
OpenPOWER on IntegriCloud