summaryrefslogtreecommitdiffstats
path: root/rtemsbsd/rtems/rtems-kernel-vfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'rtemsbsd/rtems/rtems-kernel-vfs.c')
-rw-r--r--rtemsbsd/rtems/rtems-kernel-vfs.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/rtemsbsd/rtems/rtems-kernel-vfs.c b/rtemsbsd/rtems/rtems-kernel-vfs.c
index 2f4d009b..69c9ba56 100644
--- a/rtemsbsd/rtems/rtems-kernel-vfs.c
+++ b/rtemsbsd/rtems/rtems-kernel-vfs.c
@@ -490,7 +490,7 @@ rtems_bsd_vfs_fchmod(const rtems_filesystem_location_info_t *loc, mode_t mode)
}
return rtems_bsd_error_to_status_and_errno(ENOMEM);
}
- error = setfmode(td, NULL, vp, mode);
+ error = setfmode(td, td->td_ucred, vp, mode);
return rtems_bsd_error_to_status_and_errno(error);
}
@@ -511,7 +511,7 @@ rtems_bsd_vfs_chown(
}
return rtems_bsd_error_to_status_and_errno(ENOMEM);
}
- error = setfown(td, NULL, vp, owner, group);
+ error = setfown(td, td->td_ucred, vp, owner, group);
return rtems_bsd_error_to_status_and_errno(error);
}
@@ -679,7 +679,11 @@ restart:
goto restart;
}
vfs_notify_upper(vp, VFS_NOTIFY_UPPER_UNLINK);
- error = VOP_RMDIR(dvp, vp, &cn);
+ if (vp->v_type == VDIR) {
+ error = VOP_RMDIR(dvp, vp, &cn);
+ } else {
+ error = VOP_REMOVE(dvp, vp, &cn);
+ }
vn_finished_write(mp);
out:
return rtems_bsd_error_to_status_and_errno(error);