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()