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