Have you tried the latest XFS and Samba
Juergen Hasch
Hasch at t-online.de
Tue May 1 21:51:17 GMT 2001
John Trostel schrieb:
>
> I can not get the 30 April SGI Linux XFS CVS download and the 1 May Samba 2.2
> CVS downloads to work together here. When I click on the security tab on the
> NT side, I get an access violation error on the NT side that starts up Dr.
> Watson. This occurs whether my share is on an XFS parition or on an ext2
> partition. It occurs on when I compile with the --with-acl-support option on
> or off. It occurs when I use the 2.4.3 kernel version of XFS or the 2.4.2
> version.
Samba + XFS still works for me, but I have Win2K running, not NT. I can
view
the security tab and change settings as I like. However I didn't test
default ACL behaviour recently.
Below are two patches I am playing with. The first one is an alternative
to
avoid the explicit ACL test in set_canon_ace_list.
The second one gets rid of the "canonicalise_acl: Unknown tagtype 0"
message by
making sure we only return ACLs from a file if there are any. I am not
really
sure if this is correct, but it looks like canonicalise_acl tries to get
ACLs
even when the file has no ACLs.
The ACL implementation from Andreas Gruenbacher seems to return a NULL
in this
case, too (plus sets errno to ENOSYS or ENOTSUP).
...Juergen
*** posix_acls.old Tue May 1 23:11:17 2001
--- posix_acls.c Tue May 1 23:16:18 2001
***************
*** 1665,1676 ****
--- 1665,1678 ----
DEBUG(0,("set_canon_ace_list: sys_acl_set_file type %s failed for
file %s (%s).\n",
the_acl_type == SMB_ACL_TYPE_DEFAULT ? "directory default" :
"file",
fsp->fsp_name, strerror(errno) ));
+ *pacl_set_support = False;
goto done;
}
} else {
if (sys_acl_set_fd(fsp->fd, the_acl) == -1) {
DEBUG(0,("set_canon_ace_list: sys_acl_set_file failed for file %s
(%s).\n",
fsp->fsp_name, strerror(errno) ));
+ *pacl_set_support = False;
goto done;
}
}
*** sysacls.old Tue May 1 23:11:06 2001
--- sysacls.c Tue May 1 23:24:52 2001
***************
*** 1058,1069 ****
SMB_ACL_T sys_acl_get_file( const char *path_p, SMB_ACL_TYPE_T type)
{
! return acl_get_file( path_p, type);
}
SMB_ACL_T sys_acl_get_fd(int fd)
{
! return acl_get_fd(fd);
}
char *sys_acl_to_text( SMB_ACL_T the_acl, ssize_t *plen)
--- 1058,1083 ----
SMB_ACL_T sys_acl_get_file( const char *path_p, SMB_ACL_TYPE_T type)
{
! SMB_ACL_T the_acl;
! the_acl = acl_get_file( path_p, type);
! if (the_acl && the_acl->acl_cnt == ACL_NOT_PRESENT) {
! acl_free(the_acl);
! return NULL;
! }
! else
! return the_acl;
}
SMB_ACL_T sys_acl_get_fd(int fd)
{
! SMB_ACL_T the_acl;
! the_acl = acl_get_fd(fd);
! if (the_acl && the_acl->acl_cnt == ACL_NOT_PRESENT) {
! acl_free(the_acl);
! return NULL;
! }
! else
! return the_acl;
}
More information about the samba-technical
mailing list