mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 10:37:35 +03:00
Add .zfs control directory
Add support for the .zfs control directory. This was accomplished
by leveraging as much of the existing ZFS infrastructure as posible
and updating it for Linux as required. The bulk of the core
functionality is now all there with the following limitations.
*) The .zfs/snapshot directory automount support requires a 2.6.37
or newer kernel. The exception is RHEL6.2 which has backported
the d_automount patches.
*) Creating/destroying/renaming snapshots with mkdir/rmdir/mv
in the .zfs/snapshot directory works as expected. However,
this functionality is only available to root until zfs
delegations are finished.
* mkdir - create a snapshot
* rmdir - destroy a snapshot
* mv - rename a snapshot
The following issues are known defeciences, but we expect them to
be addressed by future commits.
*) Add automount support for kernels older the 2.6.37. This should
be possible using follow_link() which is what Linux did before.
*) Accessing the .zfs/snapshot directory via NFS is not yet possible.
The majority of the ground work for this is complete. However,
finishing this work will require resolving some lingering
integration issues with the Linux NFS kernel server.
*) The .zfs/shares directory exists but no futher smb functionality
has yet been implemented.
Contributions-by: Rohan Puri <rohan.puri15@gmail.com>
Contributiobs-by: Andrew Barnes <barnes333@gmail.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #173
This commit is contained in:
@@ -39,6 +39,7 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -41,6 +41,7 @@ subdir = lib/libavl
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -41,6 +41,7 @@ subdir = lib/libefi
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -41,6 +41,7 @@ subdir = lib/libnvpair
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -41,6 +41,7 @@ subdir = lib/libshare
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -41,6 +41,7 @@ subdir = lib/libspl
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -40,6 +40,7 @@ subdir = lib/libspl/asm-generic
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -41,6 +41,7 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -41,6 +41,7 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -41,6 +41,7 @@ DIST_COMMON = $(libspl_HEADERS) $(srcdir)/Makefile.am \
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -39,6 +39,7 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -41,6 +41,7 @@ DIST_COMMON = $(libspl_HEADERS) $(srcdir)/Makefile.am \
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -41,6 +41,7 @@ DIST_COMMON = $(libspl_HEADERS) $(srcdir)/Makefile.am \
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -41,6 +41,7 @@ DIST_COMMON = $(libspl_HEADERS) $(srcdir)/Makefile.am \
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -41,6 +41,7 @@ DIST_COMMON = $(libspl_HEADERS) $(srcdir)/Makefile.am \
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -41,6 +41,7 @@ DIST_COMMON = $(libspl_HEADERS) $(srcdir)/Makefile.am \
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -41,6 +41,7 @@ DIST_COMMON = $(libspl_HEADERS) $(srcdir)/Makefile.am \
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -41,6 +41,7 @@ subdir = lib/libunicode
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -41,6 +41,7 @@ subdir = lib/libuutil
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -41,6 +41,7 @@ subdir = lib/libzfs
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
|
||||
@@ -97,6 +97,7 @@ libzpool_la_LDFLAGS = -pthread -version-info 1:1:0
|
||||
EXTRA_DIST = \
|
||||
$(top_srcdir)/module/zfs/vdev_disk.c \
|
||||
$(top_srcdir)/module/zfs/zfs_acl.c \
|
||||
$(top_srcdir)/module/zfs/zfs_ctldir.c \
|
||||
$(top_srcdir)/module/zfs/zfs_dir.c \
|
||||
$(top_srcdir)/module/zfs/zfs_ioctl.c \
|
||||
$(top_srcdir)/module/zfs/zfs_log.c \
|
||||
@@ -105,6 +106,7 @@ EXTRA_DIST = \
|
||||
$(top_srcdir)/module/zfs/zfs_rlock.c \
|
||||
$(top_srcdir)/module/zfs/zfs_vfsops.c \
|
||||
$(top_srcdir)/module/zfs/zfs_vnops.c \
|
||||
$(top_srcdir)/module/zfs/zpl_ctldir.c \
|
||||
$(top_srcdir)/module/zfs/zpl_export.c \
|
||||
$(top_srcdir)/module/zfs/zpl_file.c \
|
||||
$(top_srcdir)/module/zfs/zpl_inode.c \
|
||||
|
||||
@@ -41,6 +41,7 @@ subdir = lib/libzpool
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||
$(top_srcdir)/config/kernel-automount.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||
$(top_srcdir)/config/kernel-bdi-setup-and-register.m4 \
|
||||
@@ -455,6 +456,7 @@ libzpool_la_LDFLAGS = -pthread -version-info 1:1:0
|
||||
EXTRA_DIST = \
|
||||
$(top_srcdir)/module/zfs/vdev_disk.c \
|
||||
$(top_srcdir)/module/zfs/zfs_acl.c \
|
||||
$(top_srcdir)/module/zfs/zfs_ctldir.c \
|
||||
$(top_srcdir)/module/zfs/zfs_dir.c \
|
||||
$(top_srcdir)/module/zfs/zfs_ioctl.c \
|
||||
$(top_srcdir)/module/zfs/zfs_log.c \
|
||||
@@ -463,6 +465,7 @@ EXTRA_DIST = \
|
||||
$(top_srcdir)/module/zfs/zfs_rlock.c \
|
||||
$(top_srcdir)/module/zfs/zfs_vfsops.c \
|
||||
$(top_srcdir)/module/zfs/zfs_vnops.c \
|
||||
$(top_srcdir)/module/zfs/zpl_ctldir.c \
|
||||
$(top_srcdir)/module/zfs/zpl_export.c \
|
||||
$(top_srcdir)/module/zfs/zpl_file.c \
|
||||
$(top_srcdir)/module/zfs/zpl_inode.c \
|
||||
|
||||
Reference in New Issue
Block a user