components/samba/samba/patches/vfs_samfs.c.patch
author Jiri Sasek <Jiri.Sasek@Sun.COM>
Tue, 17 Jul 2012 13:17:33 -0700
changeset 923 79e84368f624
parent 628 c3c0c8f3f696
child 1207 1d0be3a9fc06
permissions -rw-r--r--
7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
628
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
     1
bug #5780
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
     2
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
     3
diff --git a/source3/Makefile.in b/source3/Makefile.in
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
     4
index 425aa2b..db1d809 100644
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
     5
--- a/source3/Makefile.in
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
     6
+++ b/source3/Makefile.in
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
     7
@@ -715,6 +715,7 @@ VFS_AIXACL_OBJ = modules/vfs_aixacl.o modules/vfs_aixacl_util.o
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
     8
 VFS_AIXACL2_OBJ = modules/vfs_aixacl2.o modules/vfs_aixacl_util.o modules/nfs4_acls.o
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
     9
 VFS_SOLARISACL_OBJ = modules/vfs_solarisacl.o
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    10
 VFS_ZFSACL_OBJ = modules/vfs_zfsacl.o modules/nfs4_acls.o
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    11
+VFS_SAMFS_OBJ = modules/vfs_samfs.o
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    12
 VFS_HPUXACL_OBJ = modules/vfs_hpuxacl.o
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    13
 VFS_IRIXACL_OBJ = modules/vfs_irixacl.o
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    14
 VFS_TRU64ACL_OBJ = modules/vfs_tru64acl.o
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    15
@@ -2741,6 +2742,10 @@ bin/zfsacl.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_ZFSACL_OBJ)
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    16
 	@echo "Building plugin $@"
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    17
 	@$(SHLD_MODULE) $(VFS_ZFSACL_OBJ)
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    18
 
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    19
+bin/samfs.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_SAMFS_OBJ)
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    20
+	@echo "Building plugin $@"
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    21
+	@$(SHLD_MODULE) $(VFS_SAMFS_OBJ) @SAMFS_LIBS@
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    22
+
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    23
 bin/irixacl.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_IRIXACL_OBJ)
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    24
 	@echo "Building plugin $@"
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    25
 	@$(SHLD_MODULE) $(VFS_IRIXACL_OBJ)
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    26
diff --git a/source3/configure.in b/source3/configure.in
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    27
index 2494593..8daa53f 100644
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    28
--- a/source3/configure.in
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    29
+++ b/source3/configure.in
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    30
@@ -6653,6 +6653,8 @@ SMB_MODULE(vfs_aio_fork, \$(VFS_AIO_FORK_OBJ), "bin/aio_fork.$SHLIBEXT", VFS)
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    31
 SMB_MODULE(vfs_preopen, \$(VFS_PREOPEN_OBJ), "bin/preopen.$SHLIBEXT", VFS)
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    32
 SMB_MODULE(vfs_syncops, \$(VFS_SYNCOPS_OBJ), "bin/syncops.$SHLIBEXT", VFS)
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    33
 SMB_MODULE(vfs_zfsacl, \$(VFS_ZFSACL_OBJ), "bin/zfsacl.$SHLIBEXT", VFS)
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    34
+AC_SUBST(SAMFS_LIBS)
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    35
+SMB_MODULE(vfs_samfs, \$(VFS_SAMFS_OBJ), "bin/samfs.$SHLIBEXT", VFS)
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    36
 SMB_MODULE(vfs_notify_fam, \$(VFS_NOTIFY_FAM_OBJ), "bin/notify_fam.$SHLIBEXT", VFS)
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    37
 SMB_MODULE(vfs_acl_xattr, \$(VFS_ACL_XATTR_OBJ), "bin/acl_xattr.$SHLIBEXT", VFS)
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    38
 SMB_MODULE(vfs_acl_tdb, \$(VFS_ACL_TDB_OBJ), "bin/acl_tdb.$SHLIBEXT", VFS)
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    39
diff --git a/source3/modules/vfs_samfs.c b/source3/modules/vfs_samfs.c
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    40
new file mode 100644
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
    41
index 0000000..9370768
923
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
    42
--- /dev/null	2012-07-16 09:13:54.000000000 -0700
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
    43
+++ b/source3/modules/vfs_samfs.c	2012-07-16 09:21:00.168046000 -0700
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
    44
@@ -0,0 +1,180 @@
264
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    45
+/*
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    46
+ * Support for offline files with Sun SAM-QFS
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    47
+ *
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    48
+ * Copyright (C) Dirk Nitschke, 2009
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    49
+ *
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    50
+ * Modified by Jiri Sasek, 2010
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    51
+ * To conform the samba-vfs api
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    52
+ *
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    53
+ * This program is free software; you can redistribute it and/or modify
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    54
+ * it under the terms of the GNU General Public License as published by
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    55
+ * the Free Software Foundation; either version 3 of the License, or
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    56
+ * (at your option) any later version.
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    57
+ *
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    58
+ * This program is distributed in the hope that it will be useful,
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    59
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    60
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    61
+ * GNU General Public License for more details.
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    62
+ *
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    63
+ * You should have received a copy of the GNU General Public License
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    64
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    65
+ *
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    66
+ */
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    67
+
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    68
+#include "includes.h"
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    69
+/*
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    70
+ * Include files for Sun SAM-QFS
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    71
+ *
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    72
+ */
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    73
+#include <pub/stat.h>
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    74
+#include <pub/lib.h>
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    75
+
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    76
+#undef DBGC_CLASS
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    77
+#define DBGC_CLASS DBGC_VFS
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    78
+
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    79
+#define SAMFS_MODULE_NAME "samfs"
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    80
+
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    81
+NTSTATUS vfs_samfs_init(void);
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    82
+
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    83
+/*
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    84
+ * samfs_is_offline()
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    85
+ * check if the local file is offline in the sense of SAM-QFS
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    86
+ *
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    87
+ * A segmented file is offline if the file's index inode is
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    88
+ * offline or at least one of it's segments is offline.
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    89
+ *
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    90
+ * See sam_stat(3) and sam_segment_stat(3) for details.
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    91
+ *
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    92
+ * If something goes wrong we assume that the file is offline.
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    93
+ */
923
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
    94
+static bool samfs_is_offline(struct vfs_handle_struct *handle, const struct smb_filename *fname, SMB_STRUCT_STAT *sbuf)
264
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    95
+{
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    96
+	struct sam_stat file_info;
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    97
+	struct sam_stat *seg_info_ptr;
923
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
    98
+	int number_of_segments, number_of_segments_offline = 0;
264
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
    99
+	int result;
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   100
+	int i;
923
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   101
+	NTSTATUS status;
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   102
+	char *path;
264
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   103
+
923
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   104
+        status = get_full_smb_filename(talloc_tos(), fname, &path);
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   105
+        if (!NT_STATUS_IS_OK(status)) {
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   106
+                errno = map_errno_from_nt_status(status);
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   107
+                return false;
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   108
+        }
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   109
+
264
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   110
+	if (ISDOT(path) || ISDOTDOT(path)) {
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   111
+		return false;
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   112
+	}
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   113
+
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   114
+	/*
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   115
+	 * Initialize file_info to be all zero bits
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   116
+	 */
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   117
+	memset((void *)&file_info, 0, sizeof(struct sam_stat));
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   118
+
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   119
+	/*
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   120
+	 * Stat the file using the regular sam_stat function
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   121
+	 */
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   122
+	result = sam_stat(path, &file_info, sizeof(struct sam_stat));
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   123
+
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   124
+	if (result != 0) {
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   125
+		DEBUG(10,("samfs_is_offline: cannot sam_stat %s, %s\nAssuming file is offline.\n", \
628
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   126
+			path, strerror(errno)));
264
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   127
+		return true;
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   128
+	}
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   129
+
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   130
+	/*
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   131
+	 * Check if file is offline
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   132
+	 */
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   133
+	if (SS_ISOFFLINE(file_info.attr)) {
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   134
+		DEBUG(10,("samfs_is_offline: file %s is offline.\n", path));
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   135
+		return true;
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   136
+	}
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   137
+
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   138
+	/*
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   139
+	 * Check for segmented file
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   140
+	 */
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   141
+	if (SS_ISSEGMENT_F(file_info.attr)) {
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   142
+		number_of_segments = NUM_SEGS(&file_info);
628
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   143
+		seg_info_ptr = (struct sam_stat *)TALLOC_ZERO_ARRAY(talloc_tos(),
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   144
+						struct sam_stat, number_of_segments);
264
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   145
+		if (seg_info_ptr != NULL) {
628
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   146
+			DEBUG(10,("samfs_is_offline: cannot talloc for "
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   147
+				"segment stat info %s\nAssuming file is offline.\n",
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   148
+				path));
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   149
+			return true;
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   150
+		}
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   151
+
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   152
+		/*
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   153
+		 * Stat all segments
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   154
+		 */
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   155
+		result = sam_segment_stat(path, seg_info_ptr,
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   156
+			number_of_segments * sizeof(struct sam_stat));
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   157
+		if (result != 0) {
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   158
+			DEBUG(10,("samfs_is_offline: cannot sam_segment_stat %s, "
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   159
+				"%s\nAssuming file is offline.\n",
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   160
+				path, strerror(errno)));
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   161
+			TALLOC_FREE(seg_info_ptr);
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   162
+			return true;
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   163
+		}
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   164
+		/*
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   165
+		 * Loop over segments until we have checked all segments
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   166
+		 * or found one which is offline.
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   167
+		 */
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   168
+		for (i = 0; i < number_of_segments; i++) {
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   169
+			if (SS_ISOFFLINE(seg_info_ptr[i].attr)) {
923
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   170
+				number_of_segments_offline++;
264
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   171
+			}
628
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   172
+		}
923
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   173
+		DEBUG(10,("samfs_is_offline: file %s has %d offline segments\n"
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   174
+			, path, number_of_segments_offline));
628
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   175
+		TALLOC_FREE(seg_info_ptr);
264
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   176
+	}
923
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   177
+	return (number_of_segments_offline) ? true : false ;
264
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   178
+}
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   179
+
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   180
+/*
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   181
+ * release a file-command to SAM-stagger
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   182
+ */
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   183
+extern int sam_release(const char *path, const char *command);
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   184
+
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   185
+/*
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   186
+ * samfs_set_offline()
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   187
+ *
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   188
+ * Release the local file in the sense of SAM-QFS.
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   189
+ * See sam_release(3) for details.
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   190
+ *
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   191
+ */
923
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   192
+static int samfs_set_offline(struct vfs_handle_struct *handle, const struct smb_filename *fname)
264
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   193
+{
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   194
+	int result;
923
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   195
+	NTSTATUS status;
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   196
+	char *path;
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   197
+
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   198
+        status = get_full_smb_filename(talloc_tos(), fname, &path);
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   199
+        if (!NT_STATUS_IS_OK(status)) {
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   200
+                errno = map_errno_from_nt_status(status);
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   201
+                return false;
79e84368f624 7181237 Samba 3.6.x (patch 119757-22/119758-22) always reports files on SAM-FS as offline (attribute O)
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 628
diff changeset
   202
+        }
264
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   203
+
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   204
+	result = sam_release(path, "i");
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   205
+	if (result != 0) {
628
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   206
+		DEBUG(10,("samfs_set_offline: sam_release %s returned %s\n",
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   207
+			path, strerror(errno)));
264
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   208
+		return -1;
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   209
+	}
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   210
+	return 0;
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   211
+}
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   212
+
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   213
+/* VFS operations structure */
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   214
+
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   215
+static struct vfs_fn_pointers samfs_fns = {
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   216
+	.is_offline = samfs_is_offline,
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   217
+	.set_offline = samfs_set_offline
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   218
+};
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   219
+
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   220
+NTSTATUS vfs_samfs_init(void)
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   221
+{
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   222
+	return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, SAMFS_MODULE_NAME,
628
c3c0c8f3f696 7119845 Samba 3.5.10 can not use the system kerberos keytab.
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents: 264
diff changeset
   223
+		&samfs_fns);
264
84a67a54e8fd 7044174 Move samba(s) and its dependencies to Userland.
Jiri Sasek <jurasek@opensolaris.org>
parents:
diff changeset
   224
+}