* fhandler.h (class fhandler_base): Declare new method link.
(class fhandler_socket): Ditto. (class fhandler_disk_file): Ditto. * fhandler.cc (fhandler_base::open): Add FILE_WRITE_ATTRIBUTES to query_write_control access flags. (fhandler_base::link): New method. * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Don't try to open with O_WRONLY since query_write_control includes FILE_WRITE_ATTRIBUTES. (fhandler_disk_file::fchown): Ditto. (fhandler_disk_file::facl): Ditto. (fhandler_disk_file::link): New method. Touch st_ctime on successful link. * fhandler_socket.cc (fhandler_socket::link): New method. * syscalls.cc (link): Move functionality into fhandler method link. Just call this method from here.
This commit is contained in:
@ -448,6 +448,18 @@ fhandler_socket::facl (int cmd, int nentries, __aclent32_t *aclbufp)
|
||||
return fhandler_base::facl (cmd, nentries, aclbufp);
|
||||
}
|
||||
|
||||
int
|
||||
fhandler_socket::link (const char *newpath)
|
||||
{
|
||||
if (get_device () == FH_UNIX)
|
||||
{
|
||||
fhandler_disk_file fh;
|
||||
fh.set_name (pc);
|
||||
return fh.link (newpath);
|
||||
}
|
||||
return fhandler_base::link (newpath);
|
||||
}
|
||||
|
||||
int
|
||||
fhandler_socket::bind (const struct sockaddr *name, int namelen)
|
||||
{
|
||||
|
Reference in New Issue
Block a user