#include "includes.h"
#include "smbd/smbd.h"
+#include "system/filesys.h"
#include "librpc/gen_ndr/xattr.h"
#include "auth.h"
#include "vfs_acl_common.h"
return 0;
}
+static int acl_xattr_unlinkat(vfs_handle_struct *handle,
+ struct files_struct *dirfsp,
+ const struct smb_filename *smb_fname,
+ int flags)
+{
+ int ret;
+
+ if (flags & AT_REMOVEDIR) {
+ ret = rmdir_acl_common(handle, smb_fname);
+ } else {
+ ret = unlink_acl_common(handle, smb_fname);
+ }
+ return ret;
+}
+
static NTSTATUS acl_xattr_fget_nt_acl(vfs_handle_struct *handle,
files_struct *fsp,
uint32_t security_info,
.connect_fn = connect_acl_xattr,
.rmdir_fn = rmdir_acl_common,
.unlink_fn = unlink_acl_common,
+ .unlinkat_fn = acl_xattr_unlinkat,
.chmod_fn = chmod_acl_module_common,
.fchmod_fn = fchmod_acl_module_common,
.fget_nt_acl_fn = acl_xattr_fget_nt_acl,