![]() |
![]() |
![]() |
Handle an _IO_CHOWN message
#include <sys/iofunc.h> int iofunc_chown ( resmgr_context_t *ctp, io_chown_t *msg, iofunc_ocb_t *ocb, iofunc_attr_t *attr );
libc
The iofunc_chown() function implements POSIX semantics for the client's chown() call, which is received as an _IO_CHOWN message by the resource manager.
The iofunc_chown() function verifies that the client has the necessary permissions to effect a chown on the attribute. If so, the chown is performed, modifying elements of the ocb->attr structure. As per POSIX 1003.1, if the client isn't root, iofunc_chown() clears the set-user-id and set-group-id bits in the ocb->attr->mode member. This function takes care of updating the IOFUNC_ATTR_CTIME, IOFUNC_ATTR_DIRTY_TIME, and IOFUNC_ATTR_DIRTY_MODE bits in ocb->attr->flags. The iofunc_time_update() function can be used to update the appropriate time fields in ocb->attr.
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |
iofunc_chmod(), iofunc_chmod_default(), iofunc_chown_default(), iofunc_close_dup_default(), iofunc_close_ocb_default(), iofunc_devctl_default(), iofunc_lock_default(), iofunc_lseek_default(), iofunc_mmap_default(), iofunc_open_default(), iofunc_pathconf_default(), iofunc_stat_default(), iofunc_time_update(), iofunc_unblock_default(), iofunc_utime_default(), resmgr_attach()
![]() |
![]() |
![]() |