Changeset 745 for trunk/server/source3/modules/vfs_zfsacl.c
- Timestamp:
- Nov 27, 2012, 4:43:17 PM (13 years ago)
- Location:
- trunk/server
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/server
- Property svn:mergeinfo changed
/vendor/current merged: 581,587,591,594,597,600,615,618,740
- Property svn:mergeinfo changed
-
trunk/server/source3/modules/vfs_zfsacl.c
r414 r745 24 24 25 25 #include "includes.h" 26 #include "system/filesys.h" 27 #include "smbd/smbd.h" 26 28 #include "nfs4_acls.h" 29 30 #if HAVE_FREEBSD_SUNACL_H 31 #include "sunacl.h" 32 #endif 27 33 28 34 #undef DBGC_CLASS … … 107 113 SMB4ACE_T *smbace; 108 114 TALLOC_CTX *mem_ctx; 115 bool have_special_id = false; 109 116 110 117 /* allocate the field of ZFS aces */ … … 124 131 acebuf[i].a_flags = aceprop->aceFlags; 125 132 acebuf[i].a_access_mask = aceprop->aceMask; 133 /* SYNC on acls is a no-op on ZFS. 134 See bug #7909. */ 135 acebuf[i].a_access_mask &= ~SMB_ACE4_SYNCHRONIZE; 126 136 acebuf[i].a_who = aceprop->who.id; 127 137 if(aceprop->flags & SMB_ACE4_ID_SPECIAL) { … … 141 151 continue; /* don't add it !!! */ 142 152 } 153 have_special_id = true; 143 154 } 144 155 } 156 157 if (!have_special_id 158 && lp_parm_bool(fsp->conn->params->service, "zfsacl", 159 "denymissingspecial", false)) { 160 errno = EACCES; 161 return false; 162 } 163 145 164 SMB_ASSERT(i == naces); 146 165 … … 209 228 files_struct *fsp, 210 229 uint32 security_info_sent, 211 const SEC_DESC*psd)230 const struct security_descriptor *psd) 212 231 { 213 232 return zfs_set_nt_acl(handle, fsp, security_info_sent, psd); … … 245 264 */ 246 265 247 SMB_ACL_T zfsacl_fail__sys_acl_get_file(vfs_handle_struct *handle,248 const char *path_p,249 SMB_ACL_TYPE_T type)266 static SMB_ACL_T zfsacl_fail__sys_acl_get_file(vfs_handle_struct *handle, 267 const char *path_p, 268 SMB_ACL_TYPE_T type) 250 269 { 251 270 return (SMB_ACL_T)NULL; 252 271 } 253 SMB_ACL_T zfsacl_fail__sys_acl_get_fd(vfs_handle_struct *handle, 254 files_struct *fsp,255 int fd)272 273 static SMB_ACL_T zfsacl_fail__sys_acl_get_fd(vfs_handle_struct *handle, 274 files_struct *fsp) 256 275 { 257 276 return (SMB_ACL_T)NULL; 258 277 } 259 278 260 int zfsacl_fail__sys_acl_set_file(vfs_handle_struct *handle,261 262 263 279 static int zfsacl_fail__sys_acl_set_file(vfs_handle_struct *handle, 280 const char *name, 281 SMB_ACL_TYPE_T type, 282 SMB_ACL_T theacl) 264 283 { 265 284 return -1; 266 285 } 267 286 268 int zfsacl_fail__sys_acl_set_fd(vfs_handle_struct *handle,269 files_struct *fsp,270 int fd,SMB_ACL_T theacl)287 static int zfsacl_fail__sys_acl_set_fd(vfs_handle_struct *handle, 288 files_struct *fsp, 289 SMB_ACL_T theacl) 271 290 { 272 291 return -1; 273 292 } 274 293 275 int zfsacl_fail__sys_acl_delete_def_file(vfs_handle_struct *handle,276 294 static int zfsacl_fail__sys_acl_delete_def_file(vfs_handle_struct *handle, 295 const char *path) 277 296 { 278 297 return -1;
Note:
See TracChangeset
for help on using the changeset viewer.