return NT_STATUS_OK;
}
-static int vfs_gpfs_stat(struct vfs_handle_struct *handle,
- struct smb_filename *smb_fname)
-{
- int ret;
-
- ret = SMB_VFS_NEXT_STAT(handle, smb_fname);
- if (ret == -1 && errno == EACCES) {
- DEBUG(10, ("Trying stat with capability for %s\n",
- smb_fname->base_name));
- ret = stat_with_cap_dac_override(handle, smb_fname, 0);
- }
- return ret;
-}
-
-static int vfs_gpfs_fstat(struct vfs_handle_struct *handle,
- struct files_struct *fsp,
- SMB_STRUCT_STAT *sbuf)
-{
- int ret;
-
- ret = SMB_VFS_NEXT_FSTAT(handle, fsp, sbuf);
- if (ret == -1 && errno == EACCES) {
- bool fake_dctime =
- lp_fake_directory_create_times(SNUM(handle->conn));
-
- DBG_DEBUG("fstat for %s failed with EACCES. Trying with "
- "CAP_DAC_OVERRIDE.\n", fsp->fsp_name->base_name);
- ret = fstat_with_cap_dac_override(fsp_get_pathref_fd(fsp),
- sbuf,
- fake_dctime);
- }
-
- return ret;
-}
-
-static int vfs_gpfs_lstat(struct vfs_handle_struct *handle,
- struct smb_filename *smb_fname)
-{
- int ret;
-
- ret = SMB_VFS_NEXT_LSTAT(handle, smb_fname);
- if (ret == -1 && errno == EACCES) {
- DEBUG(10, ("Trying lstat with capability for %s\n",
- smb_fname->base_name));
- ret = stat_with_cap_dac_override(handle, smb_fname,
- AT_SYMLINK_NOFOLLOW);
- }
- return ret;
-}
-
-static int vfs_gpfs_fstatat(struct vfs_handle_struct *handle,
- const struct files_struct *dirfsp,
- const struct smb_filename *smb_fname,
- SMB_STRUCT_STAT *sbuf,
- int flags)
-{
- int ret;
-
- ret = SMB_VFS_NEXT_FSTATAT(handle, dirfsp, smb_fname, sbuf, flags);
- if (ret == -1 && errno == EACCES) {
- bool fake_dctime =
- lp_fake_directory_create_times(SNUM(handle->conn));
-
- DBG_DEBUG("fstatat for %s failed with EACCES. Trying with "
- "CAP_DAC_OVERRIDE.\n", dirfsp->fsp_name->base_name);
- ret = fstatat_with_cap_dac_override(fsp_get_pathref_fd(dirfsp),
- smb_fname->base_name,
- sbuf,
- flags,
- fake_dctime);
- }
-
- return ret;
-}
-
static int timespec_to_gpfs_time(
struct timespec ts, gpfs_timestruc_t *gt, int idx, int *flags)
{
.sys_acl_delete_def_fd_fn = gpfsacl_sys_acl_delete_def_fd,
.fchmod_fn = vfs_gpfs_fchmod,
.close_fn = vfs_gpfs_close,
- .stat_fn = vfs_gpfs_stat,
- .fstat_fn = vfs_gpfs_fstat,
- .lstat_fn = vfs_gpfs_lstat,
- .fstatat_fn = vfs_gpfs_fstatat,
+ .stat_fn = nfs4_acl_stat,
+ .fstat_fn = nfs4_acl_fstat,
+ .lstat_fn = nfs4_acl_lstat,
+ .fstatat_fn = nfs4_acl_fstatat,
.fntimes_fn = vfs_gpfs_fntimes,
.aio_force_fn = vfs_gpfs_aio_force,
.sendfile_fn = vfs_gpfs_sendfile,