diff options
Diffstat (limited to 'rtemsbsd/rtems/rtems-kernel-vfs.c')
-rw-r--r-- | rtemsbsd/rtems/rtems-kernel-vfs.c | 10 |
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); |