diff options
author | Richard Yao <ryao@gentoo.org> | 2014-06-08 17:13:58 +0000 |
---|---|---|
committer | Richard Yao <ryao@gentoo.org> | 2014-06-08 17:13:58 +0000 |
commit | 8e9c2345134e008b08337ce87360cc85701c174c (patch) | |
tree | 68570bcf18e007de04e65cc9d6a16e472f29b7bd /sys-fs/zfs-kmod | |
parent | keyword ~ia64 wrt bug #509628 (diff) | |
download | gentoo-2-8e9c2345134e008b08337ce87360cc85701c174c.tar.gz gentoo-2-8e9c2345134e008b08337ce87360cc85701c174c.tar.bz2 gentoo-2-8e9c2345134e008b08337ce87360cc85701c174c.zip |
Remove ancient ZFSOnLinux kernel module versions
(Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key 0xBEE84C64)
Diffstat (limited to 'sys-fs/zfs-kmod')
15 files changed, 17 insertions, 1388 deletions
diff --git a/sys-fs/zfs-kmod/ChangeLog b/sys-fs/zfs-kmod/ChangeLog index dce5e4091f8a..8e9153d21b56 100644 --- a/sys-fs/zfs-kmod/ChangeLog +++ b/sys-fs/zfs-kmod/ChangeLog @@ -1,6 +1,22 @@ # ChangeLog for sys-fs/zfs-kmod # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-fs/zfs-kmod/ChangeLog,v 1.46 2014/05/22 21:39:35 ryao Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-fs/zfs-kmod/ChangeLog,v 1.47 2014/06/08 17:13:57 ryao Exp $ + + 08 Jun 2014; Richard Yao <ryao@gentoo.org> + -files/zfs-kmod-0.6.0_rc11-fix-32-bit-integer-size-mismatch.patch, + -files/zfs-kmod-0.6.0_rc11-fix-i386-infinite-loop.patch, + -files/zfs-kmod-0.6.0_rc11-fix-rename-failure.patch, + -files/zfs-kmod-0.6.0_rc11-fix-zvol_probe-null.patch, + -files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-0-elevator-change.patch, + -files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-1.patch, + -files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-2.patch, + -files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-3.patch, + -files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-4.patch, + -files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-5.patch, + -files/zfs-kmod-0.6.0_rc11-return-positive-error.patch, + -zfs-kmod-0.6.0_rc10-r2.ebuild, -zfs-kmod-0.6.0_rc11-r3.ebuild, + -zfs-kmod-0.6.0_rc12-r3.ebuild: + Remove ancient ZFSOnLinux kernel module versions 22 May 2014; Richard Yao <ryao@gentoo.org> zfs-kmod-9999.ebuild: CONFIG_DEBUG_INFO should be DEBUG_INFO diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-fix-32-bit-integer-size-mismatch.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-fix-32-bit-integer-size-mismatch.patch deleted file mode 100644 index 64004aca71d8..000000000000 --- a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-fix-32-bit-integer-size-mismatch.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 7df05a4266fe8549cedb9a2d71bb8bff6ab11112 Mon Sep 17 00:00:00 2001 -From: Richard Yao <ryao@cs.stonybrook.edu> -Date: Wed, 10 Oct 2012 23:57:45 -0400 -Subject: [PATCH] Fix zfs_write_limit_max integer size mismatch on 32-bit - systems - -Commit c409e4647f221ab724a0bd10c480ac95447203c3 introduced a -number of module parameters. This required several types to be -changed to accomidate the required module parameters Linux macros. - -Unfortunately, arc.c contained its own extern definition of the -zfs_write_limit_max variable and its type was not updated to be -consistent with its dsl_pool.c counterpart. If the variable had -been properly marked extern in a common header, then gcc would -have generated a warning and this would not have slipped through. - -The result of this was that the ARC unconditionally expected -zfs_write_limit_max to be 64-bit. Unfortunately, the largest size -integer module parameter that Linux supports is unsigned long, which -varies in size depending on the host system's native word size. The -effect was that on 32-bit systems, ARC incorrectly performed 64-bit -operations on a 32-bit value by reading the neighboring 32 bits as -the upper 32 bits of the 64-bit value. - -We correct that by changing the extern declaration to use the unsigned -long type and move these extern definitions in to the common arc.h -header. This should make ARC correctly treat zfs_write_limit_max as a -32-bit value on 32-bit systems. - -Reported-by: Jorgen Lundman <lundman@lundman.net> -Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu> -Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> -Closes #749 ---- - include/sys/arc.h | 5 +++++ - module/zfs/arc.c | 4 ---- - 2 files changed, 5 insertions(+), 4 deletions(-) - -diff --git a/include/sys/arc.h b/include/sys/arc.h -index dd9b128..443597d 100644 ---- a/include/sys/arc.h -+++ b/include/sys/arc.h -@@ -150,6 +150,11 @@ zio_t *arc_write(zio_t *pio, spa_t *spa, uint64_t txg, - void l2arc_start(void); - void l2arc_stop(void); - -+/* Global tunings */ -+extern int zfs_write_limit_shift; -+extern unsigned long zfs_write_limit_max; -+extern kmutex_t zfs_write_limit_lock; -+ - #ifdef __cplusplus - } - #endif -diff --git a/module/zfs/arc.c b/module/zfs/arc.c -index 55f1909..829b4d9 100644 ---- a/module/zfs/arc.c -+++ b/module/zfs/arc.c -@@ -147,10 +147,6 @@ - static kcondvar_t arc_reclaim_thr_cv; /* used to signal reclaim thr */ - static uint8_t arc_thread_exit; - --extern int zfs_write_limit_shift; --extern uint64_t zfs_write_limit_max; --extern kmutex_t zfs_write_limit_lock; -- - /* number of bytes to prune from caches when at arc_meta_limit is reached */ - uint_t arc_meta_prune = 1048576; - --- -1.7.10 - diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-fix-i386-infinite-loop.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-fix-i386-infinite-loop.patch deleted file mode 100644 index e0146144f2eb..000000000000 --- a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-fix-i386-infinite-loop.patch +++ /dev/null @@ -1,70 +0,0 @@ -From b68503fb30dfed0823b1fe7d547d82c3df04d187 Mon Sep 17 00:00:00 2001 -From: Richard Yao <ryao@cs.stonybrook.edu> -Date: Thu, 11 Oct 2012 15:51:25 -0700 -Subject: [PATCH] Remove vmem_size() consumers - -There are currently three vmem_size() consumers all of which are -part of the ARC implemention. However, since the expected behavior -of the Linux and Solaris virtual memory subsystems are so different -the behavior in each of these instances needs to be reevaluated. - -* arc_evict_needed() - This is actually dead code. Arena support -was never added to the SPL and zio_arena is always NULL. This -support isn't needed so we simply remove this dead code. - -* arc_memory_throttle() - On Solaris where virtual memory constitutes -almost all of the address space we can reasonably expect there to be -a fairly large amount free. However, on Linux by default we only -have about 100MB total and that's heavily used by the ARC. So the -expectation on Linux is that this will usually be a small value. -Therefore we remove the vmem_size() check for i386 systems because -the expectation is that it will be less than the zfs_write_limit_max. - -* arc_init() - Here vmem_size() is used to initially size the ARC. -Since the ARC is currently backed by the virtual address space it -makes sense to use this as a limit on the ARC for 32-bit systems. -This code can be removed when the ARC is backed by the page cache. - -Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> -Closes #831 ---- - module/zfs/arc.c | 16 ---------------- - 1 file changed, 16 deletions(-) - -diff --git a/module/zfs/arc.c b/module/zfs/arc.c -index 829b4d9..6ec9f04 100644 ---- a/module/zfs/arc.c -+++ b/module/zfs/arc.c -@@ -2414,18 +2414,6 @@ struct l2arc_buf_hdr { - if (type == ARC_BUFC_METADATA && arc_meta_used >= arc_meta_limit) - return (1); - --#ifdef _KERNEL -- /* -- * If zio data pages are being allocated out of a separate heap segment, -- * then enforce that the size of available vmem for this area remains -- * above about 1/32nd free. -- */ -- if (type == ARC_BUFC_DATA && zio_arena != NULL && -- vmem_size(zio_arena, VMEM_FREE) < -- (vmem_size(zio_arena, VMEM_ALLOC) >> 5)) -- return (1); --#endif -- - if (arc_no_grow) - return (1); - -@@ -3563,10 +3551,6 @@ struct l2arc_buf_hdr { - - /* Easily reclaimable memory (free + inactive + arc-evictable) */ - available_memory = ptob(spl_kmem_availrmem()) + arc_evictable_memory(); --#if defined(__i386) -- available_memory = -- MIN(available_memory, vmem_size(heap_arena, VMEM_FREE)); --#endif - - if (available_memory <= zfs_write_limit_max) { - ARCSTAT_INCR(arcstat_memory_throttle_count, 1); --- -1.7.10 - diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-fix-rename-failure.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-fix-rename-failure.patch deleted file mode 100644 index bda91468fc78..000000000000 --- a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-fix-rename-failure.patch +++ /dev/null @@ -1,204 +0,0 @@ -From 04434775b7f3aa55fbbcf2064cfb9f5f5c436e64 Mon Sep 17 00:00:00 2001 -From: Matthew Ahrens <mahrens@delphix.com> -Date: Fri, 24 Aug 2012 07:12:46 -0700 -Subject: [PATCH] Illumos #3100: zvol rename fails with EBUSY when dirty. - -illumos/illumos-gate@2e2c135528b3edfe9aaf67d1f004dc0202fa1a54 -Illumos changeset: 13780:6da32a929222 - -3100 zvol rename fails with EBUSY when dirty - -Reviewed by: Christopher Siden <chris.siden@delphix.com> -Reviewed by: Adam H. Leventhal <ahl@delphix.com> -Reviewed by: George Wilson <george.wilson@delphix.com> -Reviewed by: Garrett D'Amore <garrett@damore.org> -Approved by: Eric Schrock <eric.schrock@delphix.com> - -Ported-by: Etienne Dechamps <etienne.dechamps@ovh.net> -Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> -Closes #995 ---- - include/sys/dmu_objset.h | 1 - - include/sys/dsl_dataset.h | 1 + - lib/libzfs/libzfs_dataset.c | 2 +- - module/zfs/dmu_objset.c | 11 ----------- - module/zfs/dsl_dataset.c | 21 +++++++++++++-------- - module/zfs/dsl_dir.c | 8 -------- - module/zfs/zfs_vfsops.c | 6 +++--- - module/zfs/zvol.c | 10 ++++++++++ - 8 files changed, 28 insertions(+), 32 deletions(-) - -diff --git a/include/sys/dmu_objset.h b/include/sys/dmu_objset.h -index c6d202e..013b6ec 100644 ---- a/include/sys/dmu_objset.h -+++ b/include/sys/dmu_objset.h -@@ -161,7 +161,6 @@ int dmu_objset_find_spa(spa_t *spa, const char *name, - /* called from dsl */ - void dmu_objset_sync(objset_t *os, zio_t *zio, dmu_tx_t *tx); - boolean_t dmu_objset_is_dirty(objset_t *os, uint64_t txg); --boolean_t dmu_objset_is_dirty_anywhere(objset_t *os); - objset_t *dmu_objset_create_impl(spa_t *spa, struct dsl_dataset *ds, - blkptr_t *bp, dmu_objset_type_t type, dmu_tx_t *tx); - int dmu_objset_open_impl(spa_t *spa, struct dsl_dataset *ds, blkptr_t *bp, -diff --git a/include/sys/dsl_dataset.h b/include/sys/dsl_dataset.h -index 7cff7e3..38ce3c5 100644 ---- a/include/sys/dsl_dataset.h -+++ b/include/sys/dsl_dataset.h -@@ -258,6 +258,7 @@ int dsl_dataset_space_written(dsl_dataset_t *oldsnap, dsl_dataset_t *new, - uint64_t *usedp, uint64_t *compp, uint64_t *uncompp); - int dsl_dataset_space_wouldfree(dsl_dataset_t *firstsnap, dsl_dataset_t *last, - uint64_t *usedp, uint64_t *compp, uint64_t *uncompp); -+boolean_t dsl_dataset_is_dirty(dsl_dataset_t *ds); - - int dsl_dsobj_to_dsname(char *pname, uint64_t obj, char *buf); - -diff --git a/lib/libzfs/libzfs_dataset.c b/lib/libzfs/libzfs_dataset.c -index 7ccd941..7cf78c8 100644 ---- a/lib/libzfs/libzfs_dataset.c -+++ b/lib/libzfs/libzfs_dataset.c -@@ -3700,7 +3700,7 @@ struct createdata { - zhp->zfs_type == ZFS_TYPE_VOLUME); - - /* -- * Destroy all recent snapshots and its dependends. -+ * Destroy all recent snapshots and their dependents. - */ - cb.cb_force = force; - cb.cb_target = snap->zfs_name; -diff --git a/module/zfs/dmu_objset.c b/module/zfs/dmu_objset.c -index a34584e..c1bc1de 100644 ---- a/module/zfs/dmu_objset.c -+++ b/module/zfs/dmu_objset.c -@@ -1182,17 +1182,6 @@ struct snaparg { - !list_is_empty(&os->os_free_dnodes[txg & TXG_MASK])); - } - --boolean_t --dmu_objset_is_dirty_anywhere(objset_t *os) --{ -- int t; -- -- for (t = 0; t < TXG_SIZE; t++) -- if (dmu_objset_is_dirty(os, t)) -- return (B_TRUE); -- return (B_FALSE); --} -- - static objset_used_cb_t *used_cbs[DMU_OST_NUMTYPES]; - - void -diff --git a/module/zfs/dsl_dataset.c b/module/zfs/dsl_dataset.c -index 10e9b19..21fdd08 100644 ---- a/module/zfs/dsl_dataset.c -+++ b/module/zfs/dsl_dataset.c -@@ -1231,6 +1231,19 @@ - } - } - -+boolean_t -+dsl_dataset_is_dirty(dsl_dataset_t *ds) -+{ -+ int t; -+ -+ for (t = 0; t < TXG_SIZE; t++) { -+ if (txg_list_member(&ds->ds_dir->dd_pool->dp_dirty_datasets, -+ ds, t)) -+ return (B_TRUE); -+ } -+ return (B_FALSE); -+} -+ - /* - * The unique space in the head dataset can be calculated by subtracting - * the space used in the most recent snapshot, that is still being used -@@ -3402,10 +3415,6 @@ struct cloneswaparg { - if (ds->ds_quota != effective_value) { - dmu_buf_will_dirty(ds->ds_dbuf, tx); - ds->ds_quota = effective_value; -- -- spa_history_log_internal(LOG_DS_REFQUOTA, -- ds->ds_dir->dd_pool->dp_spa, tx, "%lld dataset = %llu ", -- (longlong_t)ds->ds_quota, ds->ds_object); - } - } - -@@ -3509,10 +3518,6 @@ struct cloneswaparg { - - dsl_dir_diduse_space(ds->ds_dir, DD_USED_REFRSRV, delta, 0, 0, tx); - mutex_exit(&ds->ds_dir->dd_lock); -- -- spa_history_log_internal(LOG_DS_REFRESERV, -- ds->ds_dir->dd_pool->dp_spa, tx, "%lld dataset = %llu", -- (longlong_t)effective_value, ds->ds_object); - } - - int -diff --git a/module/zfs/dsl_dir.c b/module/zfs/dsl_dir.c -index 97b38d2..377df40 100644 ---- a/module/zfs/dsl_dir.c -+++ b/module/zfs/dsl_dir.c -@@ -1066,10 +1066,6 @@ struct tempreserve { - mutex_enter(&dd->dd_lock); - dd->dd_phys->dd_quota = effective_value; - mutex_exit(&dd->dd_lock); -- -- spa_history_log_internal(LOG_DS_QUOTA, dd->dd_pool->dp_spa, -- tx, "%lld dataset = %llu ", -- (longlong_t)effective_value, dd->dd_phys->dd_head_dataset_obj); - } - - int -@@ -1182,10 +1178,6 @@ struct tempreserve { - delta, 0, 0, tx); - } - mutex_exit(&dd->dd_lock); -- -- spa_history_log_internal(LOG_DS_RESERVATION, dd->dd_pool->dp_spa, -- tx, "%lld dataset = %llu", -- (longlong_t)effective_value, dd->dd_phys->dd_head_dataset_obj); - } - - int -diff --git a/module/zfs/zfs_vfsops.c b/module/zfs/zfs_vfsops.c -index 8fe457e..90f9055 100644 ---- a/module/zfs/zfs_vfsops.c -+++ b/module/zfs/zfs_vfsops.c -@@ -1112,9 +1112,9 @@ - /* - * Evict cached data - */ -- if (dmu_objset_is_dirty_anywhere(zsb->z_os)) -- if (!zfs_is_readonly(zsb)) -- txg_wait_synced(dmu_objset_pool(zsb->z_os), 0); -+ if (dsl_dataset_is_dirty(dmu_objset_ds(zsb->z_os)) && -+ !zfs_is_readonly(zsb)) -+ txg_wait_synced(dmu_objset_pool(zsb->z_os), 0); - (void) dmu_objset_evict_dbufs(zsb->z_os); - - return (0); -diff --git a/module/zfs/zvol.c b/module/zfs/zvol.c -index a182f79..5668e1d 100644 ---- a/module/zfs/zvol.c -+++ b/module/zfs/zvol.c -@@ -901,8 +901,18 @@ - { - zil_close(zv->zv_zilog); - zv->zv_zilog = NULL; -+ - dmu_buf_rele(zv->zv_dbuf, zvol_tag); - zv->zv_dbuf = NULL; -+ -+ /* -+ * Evict cached data -+ */ -+ if (dsl_dataset_is_dirty(dmu_objset_ds(zv->zv_objset)) && -+ !(zv->zv_flags & ZVOL_RDONLY)) -+ txg_wait_synced(dmu_objset_pool(zv->zv_objset), 0); -+ (void) dmu_objset_evict_dbufs(zv->zv_objset); -+ - dmu_objset_disown(zv->zv_objset, zvol_tag); - zv->zv_objset = NULL; - } --- -1.7.10 - diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-fix-zvol_probe-null.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-fix-zvol_probe-null.patch deleted file mode 100644 index 4111501fed7a..000000000000 --- a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-fix-zvol_probe-null.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 23a61ccc1b89fa5b89b5d8383d57cf5152406cfc Mon Sep 17 00:00:00 2001 -From: Chris Wedgwood <cw@f00f.org> -Date: Mon, 24 Sep 2012 10:30:18 -0700 -Subject: [PATCH] zvol_probe should return NULL when the device isn't found. - -Previously we returned ERR_PTR(-ENOENT) which the rest of the kernel -doesn't expect and as such we can oops. - -Signed-off-by: Chris Wedgwood <cw@f00f.org> -Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> -Closes #949 -Closes #931 -Closes #789 -Closes #743 -Closes #730 ---- - module/zfs/zvol.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/module/zfs/zvol.c b/module/zfs/zvol.c -index 22f14a0..a182f79 100644 ---- a/module/zfs/zvol.c -+++ b/module/zfs/zvol.c -@@ -1065,7 +1065,7 @@ static int zvol_revalidate_disk(struct gendisk *disk) - - mutex_enter(&zvol_state_lock); - zv = zvol_find_by_dev(dev); -- kobj = zv ? get_disk(zv->zv_disk) : ERR_PTR(-ENOENT); -+ kobj = zv ? get_disk(zv->zv_disk) : NULL; - mutex_exit(&zvol_state_lock); - - return kobj; --- -1.7.10 - diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-0-elevator-change.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-0-elevator-change.patch deleted file mode 100644 index 0945ab77eb38..000000000000 --- a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-0-elevator-change.patch +++ /dev/null @@ -1,137 +0,0 @@ -From 6d1d976b2c2c6b80de75a480c998466068066846 Mon Sep 17 00:00:00 2001 -From: Brian Behlendorf <behlendorf1@llnl.gov> -Date: Mon, 27 Aug 2012 03:38:06 +0700 -Subject: [PATCH] Modify vdev_elevator_switch() to use elevator_change() - -As of Linux 2.6.36 an elevator_change() interface was added. -This commit updates vdev_elevator_switch() to use this interface -when available, otherwise it falls back to the usermodehelper -method. - -Original-patch-by: foobarz <sysop@xeon.(none)> -Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> -Closes #906 ---- - config/kernel-elevator-change.m4 | 25 +++++++++++++++++++++++ - config/kernel.m4 | 1 + - module/zfs/vdev_disk.c | 41 +++++++++++++++++++++----------------- - 3 files changed, 49 insertions(+), 18 deletions(-) - create mode 100644 config/kernel-elevator-change.m4 - -diff --git a/config/kernel-elevator-change.m4 b/config/kernel-elevator-change.m4 -new file mode 100644 -index 0000000..90ab51b ---- /dev/null -+++ b/config/kernel-elevator-change.m4 -@@ -0,0 +1,25 @@ -+dnl # -+dnl # 2.6.36 API change -+dnl # Verify the elevator_change() symbol is available. -+dnl # -+AC_DEFUN([ZFS_AC_KERNEL_ELEVATOR_CHANGE], [ -+ AC_MSG_CHECKING([whether elevator_change() is available]) -+ tmp_flags="$EXTRA_KCFLAGS" -+ EXTRA_KCFLAGS="-Wno-unused-but-set-variable" -+ ZFS_LINUX_TRY_COMPILE([ -+ #include <linux/blkdev.h> -+ #include <linux/elevator.h> -+ ],[ -+ int ret; -+ struct request_queue *q = NULL; -+ char *elevator = NULL; -+ ret = elevator_change(q, elevator); -+ ],[ -+ AC_MSG_RESULT(yes) -+ AC_DEFINE(HAVE_ELEVATOR_CHANGE, 1, -+ [elevator_change() is available]) -+ ],[ -+ AC_MSG_RESULT(no) -+ ]) -+ EXTRA_KCFLAGS="$tmp_flags" -+]) -diff --git a/config/kernel.m4 b/config/kernel.m4 -index 262dc7f..89b0a98 100644 ---- a/config/kernel.m4 -+++ b/config/kernel.m4 -@@ -67,6 +67,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [ - ZFS_AC_KERNEL_BDI - ZFS_AC_KERNEL_BDI_SETUP_AND_REGISTER - ZFS_AC_KERNEL_SET_NLINK -+ ZFS_AC_KERNEL_ELEVATOR_CHANGE - - AS_IF([test "$LINUX_OBJ" != "$LINUX"], [ - KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ" -diff --git a/module/zfs/vdev_disk.c b/module/zfs/vdev_disk.c -index ffb2980..c562256 100644 ---- a/module/zfs/vdev_disk.c -+++ b/module/zfs/vdev_disk.c -@@ -111,19 +111,7 @@ - * elevator to do the maximum front/back merging allowed by the - * physical device. This yields the largest possible requests for - * the device with the lowest total overhead. -- * -- * Unfortunately we cannot directly call the elevator_switch() function -- * because it is not exported from the block layer. This means we have -- * to use the sysfs interface and a user space upcall. Pools will be -- * automatically imported on module load so we must do this at device -- * open time from the kernel. - */ --#define SET_SCHEDULER_CMD \ -- "exec 0</dev/null " \ -- " 1>/sys/block/%s/queue/scheduler " \ -- " 2>/dev/null; " \ -- "echo %s" -- - static int - vdev_elevator_switch(vdev_t *v, char *elevator) - { -@@ -131,8 +119,6 @@ - struct block_device *bdev = vd->vd_bdev; - struct request_queue *q = bdev_get_queue(bdev); - char *device = bdev->bd_disk->disk_name; -- char *argv[] = { "/bin/sh", "-c", NULL, NULL }; -- char *envp[] = { NULL }; - int error; - - /* Skip devices which are not whole disks (partitions) */ -@@ -147,14 +133,33 @@ - if (!strncmp(elevator, "none", 4) && (strlen(elevator) == 4)) - return (0); - -- argv[2] = kmem_asprintf(SET_SCHEDULER_CMD, device, elevator); -- error = call_usermodehelper(argv[0], argv, envp, 1); -+#ifdef HAVE_ELEVATOR_CHANGE -+ error = elevator_change(q, elevator); -+#else -+ /* For pre-2.6.36 kernels elevator_change() is not available. -+ * Therefore we fall back to using a usermodehelper to echo the -+ * elevator into sysfs; This requires /bin/echo and sysfs to be -+ * mounted which may not be true early in the boot process. -+ */ -+# define SET_SCHEDULER_CMD \ -+ "exec 0</dev/null " \ -+ " 1>/sys/block/%s/queue/scheduler " \ -+ " 2>/dev/null; " \ -+ "echo %s" -+ -+ { -+ char *argv[] = { "/bin/sh", "-c", NULL, NULL }; -+ char *envp[] = { NULL }; -+ -+ argv[2] = kmem_asprintf(SET_SCHEDULER_CMD, device, elevator); -+ error = call_usermodehelper(argv[0], argv, envp, 1); -+ strfree(argv[2]); -+ } -+#endif /* HAVE_ELEVATOR_CHANGE */ - if (error) - printk("ZFS: Unable to set \"%s\" scheduler for %s (%s): %d\n", - elevator, v->vdev_path, device, error); - -- strfree(argv[2]); -- - return (error); - } - --- -1.7.10 - diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-1.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-1.patch deleted file mode 100644 index 49dc64e46652..000000000000 --- a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-1.patch +++ /dev/null @@ -1,35 +0,0 @@ -From af26c4d4ab545767456d8c21ed48e9e01ce6a3e7 Mon Sep 17 00:00:00 2001 -From: Yuxuan Shui <yshuiv7@gmail.com> -Date: Sat, 13 Oct 2012 18:44:15 -0700 -Subject: [PATCH] Linux 3.6 compat, sops->write_super() removed - -The .write_super callback was removed the the super_operations -structure by Linux commit f0cd2dbb6cf387c11f87265462e370bb5469299e. -All file systems are now expected to self manage writing any dirty -state assoicated with their super block. - -ZFS never made use of this callback so it can simply be removed -from the super_operations structure. - -Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com> -Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> -Issue #873 ---- - module/zfs/zpl_super.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/module/zfs/zpl_super.c b/module/zfs/zpl_super.c -index 29d7f7d..fd4f691 100644 ---- a/module/zfs/zpl_super.c -+++ b/module/zfs/zpl_super.c -@@ -316,7 +316,6 @@ - .delete_inode = zpl_inode_delete, - #endif /* HAVE_EVICT_INODE */ - .put_super = zpl_put_super, -- .write_super = NULL, - .sync_fs = zpl_sync_fs, - .statfs = zpl_statfs, - .remount_fs = zpl_remount_fs, --- -1.7.10 - diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-2.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-2.patch deleted file mode 100644 index 13b70f90f834..000000000000 --- a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-2.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 3c203610756f98f275c7c9f731d67a38b1111509 Mon Sep 17 00:00:00 2001 -From: Yuxuan Shui <yshuiv7@gmail.com> -Date: Fri, 12 Oct 2012 21:40:53 +0800 -Subject: [PATCH] Linux 3.6 compat, sget() - -As of Linux commit 9249e17fe094d853d1ef7475dd559a2cc7e23d42 the -mount flags are now passed to sget() so they can be used when -initializing a new superblock. - -ZFS never uses sget() in this fashion so we can simply pass a -zero and add a zpl_sget() compatibility wrapper. - -Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com> -Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> -Issue #873 ---- - config/kernel-sget-args.m4 | 23 +++++++++++++++++++++++ - config/kernel.m4 | 1 + - include/linux/vfs_compat.h | 10 ++++++++++ - module/zfs/zfs_ctldir.c | 4 ++-- - 4 files changed, 36 insertions(+), 2 deletions(-) - create mode 100644 config/kernel-sget-args.m4 - -diff --git a/config/kernel-sget-args.m4 b/config/kernel-sget-args.m4 -new file mode 100644 -index 0000000..9d17459 ---- /dev/null -+++ b/config/kernel-sget-args.m4 -@@ -0,0 +1,23 @@ -+dnl # -+dnl # 3.6 API change, -+dnl # 'sget' now takes the mount flags as an argument. -+dnl # -+AC_DEFUN([ZFS_AC_KERNEL_5ARG_SGET], -+ [AC_MSG_CHECKING([whether sget() wants 5 args]) -+ ZFS_LINUX_TRY_COMPILE([ -+ #include <linux/fs.h> -+ ],[ -+ struct file_system_type *type = NULL; -+ int (*test)(struct super_block *,void *) = NULL; -+ int (*set)(struct super_block *,void *) = NULL; -+ int flags = 0; -+ void *data = NULL; -+ (void) sget(type, test, set, flags, data); -+ ],[ -+ AC_MSG_RESULT(yes) -+ AC_DEFINE(HAVE_5ARG_SGET, 1, [sget() wants 5 args]) -+ ],[ -+ AC_MSG_RESULT(no) -+ ]) -+]) -+ -diff --git a/config/kernel.m4 b/config/kernel.m4 -index 89b0a98..3a144a3 100644 ---- a/config/kernel.m4 -+++ b/config/kernel.m4 -@@ -68,6 +68,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [ - ZFS_AC_KERNEL_BDI_SETUP_AND_REGISTER - ZFS_AC_KERNEL_SET_NLINK - ZFS_AC_KERNEL_ELEVATOR_CHANGE -+ ZFS_AC_KERNEL_5ARG_SGET - - AS_IF([test "$LINUX_OBJ" != "$LINUX"], [ - KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ" -diff --git a/include/linux/vfs_compat.h b/include/linux/vfs_compat.h -index 9343f99..7181625 100644 ---- a/include/linux/vfs_compat.h -+++ b/include/linux/vfs_compat.h -@@ -131,4 +131,14 @@ - #define clear_inode(ip) end_writeback(ip) - #endif /* HAVE_EVICT_INODE && !HAVE_CLEAR_INODE */ - -+/* -+ * 3.6 API change, -+ * The sget() helper function now takes the mount flags as an argument. -+ */ -+#ifdef HAVE_5ARG_SGET -+#define zpl_sget(type, cmp, set, fl, mtd) sget(type, cmp, set, fl, mtd) -+#else -+#define zpl_sget(type, cmp, set, fl, mtd) sget(type, cmp, set, mtd) -+#endif /* HAVE_5ARG_SGET */ -+ - #endif /* _ZFS_VFS_H */ -diff --git a/module/zfs/zfs_ctldir.c b/module/zfs/zfs_ctldir.c -index c49d717..55d1696 100644 ---- a/module/zfs/zfs_ctldir.c -+++ b/module/zfs/zfs_ctldir.c -@@ -920,8 +920,8 @@ struct inode * - * race cannot occur to an expired mount point because - * we hold the zsb->z_ctldir_lock to prevent the race. - */ -- sbp = sget(&zpl_fs_type, zfsctl_test_super, -- zfsctl_set_super, &id); -+ sbp = zpl_sget(&zpl_fs_type, zfsctl_test_super, -+ zfsctl_set_super, 0, &id); - if (IS_ERR(sbp)) { - error = -PTR_ERR(sbp); - } else { --- -1.7.10 - diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-3.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-3.patch deleted file mode 100644 index f01e4a6fbdf8..000000000000 --- a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-3.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 8f195a908ffaa8faf8f4c8a0e701e44ae3859e33 Mon Sep 17 00:00:00 2001 -From: Yuxuan Shui <yshuiv7@gmail.com> -Date: Fri, 12 Oct 2012 22:41:06 +0800 -Subject: [PATCH] Linux 3.6 compat, iops->lookup() - -As of Linux commit 00cd8dd3bf95f2cc8435b4cac01d9995635c6d0b the -struct nameidata is no longer passed to iops->lookup. Instead -only the inamedata->flags are passed. - -ZFS like almost all Linux fileystems never made use of this so -only the prototype needs to be wrapped for compatibility. - -Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com> -Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> -Issue #873 ---- - config/kernel-lookup-nameidata.m4 | 21 +++++++++++++++++++++ - config/kernel.m4 | 1 + - module/zfs/zpl_ctldir.c | 15 +++++++++++++++ - module/zfs/zpl_inode.c | 4 ++++ - 4 files changed, 41 insertions(+) - create mode 100644 config/kernel-lookup-nameidata.m4 - -diff --git a/config/kernel-lookup-nameidata.m4 b/config/kernel-lookup-nameidata.m4 -new file mode 100644 -index 0000000..5e30be4 ---- /dev/null -+++ b/config/kernel-lookup-nameidata.m4 -@@ -0,0 +1,21 @@ -+dnl # -+dnl # 3.6 API change -+dnl # -+AC_DEFUN([ZFS_AC_KERNEL_LOOKUP_NAMEIDATA], [ -+ AC_MSG_CHECKING([whether iops->lookup() takes struct nameidata]) -+ ZFS_LINUX_TRY_COMPILE([ -+ #include <linux/fs.h> -+ ],[ -+ struct dentry * (*inode_lookup) (struct inode *,struct dentry *, -+ struct nameidata *) = NULL; -+ struct inode_operations iops __attribute__ ((unused)) = { -+ .lookup = inode_lookup, -+ }; -+ ],[ -+ AC_MSG_RESULT(yes) -+ AC_DEFINE(HAVE_LOOKUP_NAMEIDATA, 1, -+ [iops->lookup() operation takes nameidata]) -+ ],[ -+ AC_MSG_RESULT(no) -+ ]) -+]) -diff --git a/config/kernel.m4 b/config/kernel.m4 -index 3a144a3..8d8cd6b 100644 ---- a/config/kernel.m4 -+++ b/config/kernel.m4 -@@ -49,6 +49,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [ - ZFS_AC_KERNEL_NR_CACHED_OBJECTS - ZFS_AC_KERNEL_FREE_CACHED_OBJECTS - ZFS_AC_KERNEL_FALLOCATE -+ ZFS_AC_KERNEL_LOOKUP_NAMEIDATA - ZFS_AC_KERNEL_TRUNCATE_RANGE - ZFS_AC_KERNEL_CREATE_UMODE_T - ZFS_AC_KERNEL_AUTOMOUNT -diff --git a/module/zfs/zpl_ctldir.c b/module/zfs/zpl_ctldir.c -index c680e54..7dfaf6e 100644 ---- a/module/zfs/zpl_ctldir.c -+++ b/module/zfs/zpl_ctldir.c -@@ -143,7 +143,11 @@ - } - - static struct dentry * -+#ifdef HAVE_LOOKUP_NAMEIDATA - zpl_root_lookup(struct inode *dip, struct dentry *dentry, struct nameidata *nd) -+#else -+zpl_root_lookup(struct inode *dip, struct dentry *dentry, unsigned int flags) -+#endif - { - cred_t *cr = CRED(); - struct inode *ip; -@@ -180,8 +184,14 @@ - }; - - static struct dentry * -+#ifdef HAVE_LOOKUP_NAMEIDATA - zpl_snapdir_lookup(struct inode *dip, struct dentry *dentry, - struct nameidata *nd) -+#else -+zpl_snapdir_lookup(struct inode *dip, struct dentry *dentry, -+ unsigned int flags) -+#endif -+ - { - cred_t *cr = CRED(); - struct inode *ip; -@@ -410,8 +420,13 @@ - #endif /* HAVE_AUTOMOUNT */ - - static struct dentry * -+#ifdef HAVE_LOOKUP_NAMEIDATA - zpl_shares_lookup(struct inode *dip, struct dentry *dentry, - struct nameidata *nd) -+#else -+zpl_shares_lookup(struct inode *dip, struct dentry *dentry, -+ unsigned int flags) -+#endif - { - cred_t *cr = CRED(); - struct inode *ip = NULL; -diff --git a/module/zfs/zpl_inode.c b/module/zfs/zpl_inode.c -index 0dab82c..5b31c12 100644 ---- a/module/zfs/zpl_inode.c -+++ b/module/zfs/zpl_inode.c -@@ -31,7 +31,11 @@ - - - static struct dentry * -+#ifdef HAVE_LOOKUP_NAMEIDATA - zpl_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) -+#else -+zpl_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) -+#endif - { - cred_t *cr = CRED(); - struct inode *ip; --- -1.7.10 - diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-4.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-4.patch deleted file mode 100644 index e3183d0524d0..000000000000 --- a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-4.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 558ef6d0805457654938dbe56c9a19b0121a712d Mon Sep 17 00:00:00 2001 -From: Yuxuan Shui <yshuiv7@gmail.com> -Date: Fri, 12 Oct 2012 23:20:58 +0800 -Subject: [PATCH] Linux 3.6 compat, iops->create() - -As of Linux commit ebfc3b49a7ac25920cb5be5445f602e51d2ea559 the -struct nameidata is no longer passed to iops->create. Instead -only the result of (inamedata->flags & LOOKUP_EXCL) is passed. - -ZFS like almost all Linux fileystems never made use of this so -only the prototype needs to be wrapped for compatibility. - -Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com> -Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> -Issue #873 ---- - config/kernel-create-nameidata.m4 | 26 ++++++++++++++++++++++++++ - config/kernel.m4 | 1 + - module/zfs/zpl_inode.c | 5 +++++ - 3 files changed, 32 insertions(+) - create mode 100644 config/kernel-create-nameidata.m4 - -diff --git a/config/kernel-create-nameidata.m4 b/config/kernel-create-nameidata.m4 -new file mode 100644 -index 0000000..100f077 ---- /dev/null -+++ b/config/kernel-create-nameidata.m4 -@@ -0,0 +1,26 @@ -+dnl # -+dnl # 3.6 API change -+dnl # -+AC_DEFUN([ZFS_AC_KERNEL_CREATE_NAMEIDATA], [ -+ AC_MSG_CHECKING([whether iops->create() takes struct nameidata]) -+ ZFS_LINUX_TRY_COMPILE([ -+ #include <linux/fs.h> -+ ],[ -+ #ifdef HAVE_MKDIR_UMODE_T -+ int (*inode_create) (struct inode *,struct dentry *, -+ umode_t, struct nameidata *) = NULL; -+ #else -+ int (*inode_create) (struct inode *,struct dentry *, -+ int, struct nameidata *) = NULL; -+ #endif -+ struct inode_operations iops __attribute__ ((unused)) = { -+ .create = inode_create, -+ }; -+ ],[ -+ AC_MSG_RESULT(yes) -+ AC_DEFINE(HAVE_CREATE_NAMEIDATA, 1, -+ [iops->create() operation takes nameidata]) -+ ],[ -+ AC_MSG_RESULT(no) -+ ]) -+]) -diff --git a/config/kernel.m4 b/config/kernel.m4 -index 8d8cd6b..dd01fb2 100644 ---- a/config/kernel.m4 -+++ b/config/kernel.m4 -@@ -50,6 +50,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [ - ZFS_AC_KERNEL_FREE_CACHED_OBJECTS - ZFS_AC_KERNEL_FALLOCATE - ZFS_AC_KERNEL_LOOKUP_NAMEIDATA -+ ZFS_AC_KERNEL_CREATE_NAMEIDATA - ZFS_AC_KERNEL_TRUNCATE_RANGE - ZFS_AC_KERNEL_CREATE_UMODE_T - ZFS_AC_KERNEL_AUTOMOUNT -diff --git a/module/zfs/zpl_inode.c b/module/zfs/zpl_inode.c -index 5b31c12..bb389f8 100644 ---- a/module/zfs/zpl_inode.c -+++ b/module/zfs/zpl_inode.c -@@ -75,8 +75,13 @@ - } - - static int -+#ifdef HAVE_CREATE_NAMEIDATA - zpl_create(struct inode *dir, struct dentry *dentry, zpl_umode_t mode, - struct nameidata *nd) -+#else -+zpl_create(struct inode *dir, struct dentry *dentry, zpl_umode_t mode, -+ bool flag) -+#endif - { - cred_t *cr = CRED(); - struct inode *ip; --- -1.7.10 - diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-5.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-5.patch deleted file mode 100644 index 296304cb2338..000000000000 --- a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-linux-3.6-compat-5.patch +++ /dev/null @@ -1,118 +0,0 @@ -From 95f5c63b47d8f8294b38843f9ba710e97b749b63 Mon Sep 17 00:00:00 2001 -From: Richard Yao <ryao@cs.stonybrook.edu> -Date: Thu, 16 Aug 2012 19:31:54 -0400 -Subject: [PATCH] Linux 3.6 compat, iops->mkdir() - -Use .mkdir instead of .create in 3.3 compatibility check. Linux 3.6 -modifies inode_operations->create's function prototype. This causes -an autotools Linux 3.3. compatibility check for a function prototype -change in create, mkdir and mknode to fail. Since mkdir and mknode -are unchanged, we modify the check to examine it instead. - -Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu> -Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> -Issue #873 ---- - config/kernel-create-umode-t.m4 | 26 -------------------------- - config/kernel-mkdir-umode-t.m4 | 25 +++++++++++++++++++++++++ - config/kernel.m4 | 2 +- - include/linux/vfs_compat.h | 2 +- - 4 files changed, 27 insertions(+), 28 deletions(-) - delete mode 100644 config/kernel-create-umode-t.m4 - create mode 100644 config/kernel-mkdir-umode-t.m4 - -diff --git a/config/kernel-create-umode-t.m4 b/config/kernel-create-umode-t.m4 -deleted file mode 100644 -index f88113f..0000000 ---- a/config/kernel-create-umode-t.m4 -+++ /dev/null -@@ -1,26 +0,0 @@ --dnl # --dnl # 3.3 API change --dnl # The VFS .create, .mkdir and .mknod callbacks were updated to take a --dnl # umode_t type rather than an int. The expectation is that any backport --dnl # would also change all three prototypes. However, if it turns out that --dnl # some distribution doesn't backport the whole thing this could be --dnl # broken apart in to three seperate checks. --dnl # --AC_DEFUN([ZFS_AC_KERNEL_CREATE_UMODE_T], [ -- AC_MSG_CHECKING([whether iops->create()/mkdir()/mknod() take umode_t]) -- ZFS_LINUX_TRY_COMPILE([ -- #include <linux/fs.h> -- ],[ -- int (*create) (struct inode *, struct dentry *, umode_t, -- struct nameidata *) = NULL; -- struct inode_operations iops __attribute__ ((unused)) = { -- .create = create, -- }; -- ],[ -- AC_MSG_RESULT(yes) -- AC_DEFINE(HAVE_CREATE_UMODE_T, 1, -- [iops->create()/mkdir()/mknod() take umode_t]) -- ],[ -- AC_MSG_RESULT(no) -- ]) --]) -diff --git a/config/kernel-mkdir-umode-t.m4 b/config/kernel-mkdir-umode-t.m4 -new file mode 100644 -index 0000000..dd5d94b ---- /dev/null -+++ b/config/kernel-mkdir-umode-t.m4 -@@ -0,0 +1,25 @@ -+dnl # -+dnl # 3.3 API change -+dnl # The VFS .create, .mkdir and .mknod callbacks were updated to take a -+dnl # umode_t type rather than an int. The expectation is that any backport -+dnl # would also change all three prototypes. However, if it turns out that -+dnl # some distribution doesn't backport the whole thing this could be -+dnl # broken apart in to three seperate checks. -+dnl # -+AC_DEFUN([ZFS_AC_KERNEL_MKDIR_UMODE_T], [ -+ AC_MSG_CHECKING([whether iops->create()/mkdir()/mknod() take umode_t]) -+ ZFS_LINUX_TRY_COMPILE([ -+ #include <linux/fs.h> -+ ],[ -+ int (*mkdir) (struct inode *,struct dentry *,umode_t) = NULL; -+ struct inode_operations iops __attribute__ ((unused)) = { -+ .mkdir = mkdir, -+ }; -+ ],[ -+ AC_MSG_RESULT(yes) -+ AC_DEFINE(HAVE_MKDIR_UMODE_T, 1, -+ [iops->create()/mkdir()/mknod() take umode_t]) -+ ],[ -+ AC_MSG_RESULT(no) -+ ]) -+]) -diff --git a/config/kernel.m4 b/config/kernel.m4 -index dd01fb2..13238d8 100644 ---- a/config/kernel.m4 -+++ b/config/kernel.m4 -@@ -49,10 +49,10 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [ - ZFS_AC_KERNEL_NR_CACHED_OBJECTS - ZFS_AC_KERNEL_FREE_CACHED_OBJECTS - ZFS_AC_KERNEL_FALLOCATE -+ ZFS_AC_KERNEL_MKDIR_UMODE_T - ZFS_AC_KERNEL_LOOKUP_NAMEIDATA - ZFS_AC_KERNEL_CREATE_NAMEIDATA - ZFS_AC_KERNEL_TRUNCATE_RANGE -- ZFS_AC_KERNEL_CREATE_UMODE_T - ZFS_AC_KERNEL_AUTOMOUNT - ZFS_AC_KERNEL_ENCODE_FH_WITH_INODE - ZFS_AC_KERNEL_COMMIT_METADATA -diff --git a/include/linux/vfs_compat.h b/include/linux/vfs_compat.h -index 7181625..c4e1771 100644 ---- a/include/linux/vfs_compat.h -+++ b/include/linux/vfs_compat.h -@@ -115,7 +115,7 @@ - * umode_t type rather than an int. To cleanly handle both definitions - * the zpl_umode_t type is introduced and set accordingly. - */ --#ifdef HAVE_CREATE_UMODE_T -+#ifdef HAVE_MKDIR_UMODE_T - typedef umode_t zpl_umode_t; - #else - typedef int zpl_umode_t; --- -1.7.10 - diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-return-positive-error.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-return-positive-error.patch deleted file mode 100644 index 68ed19e764ce..000000000000 --- a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc11-return-positive-error.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 45ca2d91cb14bcbe7a06eea6e6d24ae71f1c54bf Mon Sep 17 00:00:00 2001 -From: Yuxuan Shui <yshuiv7@gmail.com> -Date: Sun, 14 Oct 2012 17:01:26 +0800 -Subject: [PATCH] Return positive error number in zfsctl_shares_lookup. - -Otherwise it will cause zpl_shares_lookup() to return a invalid -pointer when an error occurs. - -Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> -Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com> -Closes #626 #885 #947 #977 ---- - module/zfs/zfs_ctldir.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/module/zfs/zfs_ctldir.c b/module/zfs/zfs_ctldir.c -index 55d1696..41d3365 100644 ---- a/module/zfs/zfs_ctldir.c -+++ b/module/zfs/zfs_ctldir.c -@@ -952,7 +952,7 @@ struct inode * - - if (zsb->z_shares_dir == 0) { - ZFS_EXIT(zsb); -- return (-ENOTSUP); -+ return (ENOTSUP); - } - - error = zfs_zget(zsb, zsb->z_shares_dir, &dzp); --- -1.7.10 - diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc10-r2.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc10-r2.ebuild deleted file mode 100644 index b14a159abb7e..000000000000 --- a/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc10-r2.ebuild +++ /dev/null @@ -1,123 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc10-r2.ebuild,v 1.4 2013/04/17 13:27:54 ryao Exp $ - -EAPI="4" - -AT_M4DIR="config" -AUTOTOOLS_AUTORECONF="1" -AUTOTOOLS_IN_SOURCE_BUILD="1" - -inherit bash-completion-r1 flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils - -if [ ${PV} == "9999" ] ; then - inherit git-2 - EGIT_REPO_URI="git://github.com/zfsonlinux/zfs.git" -else - inherit eutils versionator - MY_PV=$(replace_version_separator 3 '-') - SRC_URI="mirror://github/zfsonlinux/zfs/zfs-${MY_PV}.tar.gz" - S="${WORKDIR}/zfs-${MY_PV}" - KEYWORDS="~amd64" -fi - -DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" -HOMEPAGE="http://zfsonlinux.org/" - -LICENSE="CDDL debug? ( GPL-2+ )" -SLOT="0" -IUSE="custom-cflags debug +rootfs" -RESTRICT="test" - -DEPEND=" - =sys-kernel/spl-${PV}* - dev-lang/perl - virtual/awk -" - -RDEPEND="${DEPEND} - !sys-fs/zfs-fuse -" - -pkg_setup() { - linux-info_pkg_setup - CONFIG_CHECK="!DEBUG_LOCK_ALLOC - !PREEMPT - BLK_DEV_LOOP - EFI_PARTITION - IOSCHED_NOOP - MODULES - !PAX_KERNEXEC_PLUGIN_METHOD_OR - ZLIB_DEFLATE - ZLIB_INFLATE - " - - use rootfs && \ - CONFIG_CHECK="${CONFIG_CHECK} BLK_DEV_INITRD - DEVTMPFS" - - kernel_is ge 2 6 26 || die "Linux 2.6.26 or newer required" - - [ ${PV} != "9999" ] && \ - { kernel_is le 3 6 || die "Linux 3.6 is the latest supported version."; } - - check_extra_config -} - -src_prepare() { - if [ ${PV} != "9999" ] - then - # Fix various deadlocks - epatch "${FILESDIR}/${PN}-0.6.0_rc9-remove-pfmalloc-1-of-3.patch" - epatch "${FILESDIR}/${PN}-0.6.0_rc9-remove-pfmalloc-2-of-3.patch" - epatch "${FILESDIR}/${PN}-0.6.0_rc9-remove-pfmalloc-3-of-3.patch" - - # Handle missing name length check in Linux VFS - epatch "${FILESDIR}/${PN}-0.6.0_rc14-vfs-name-length-compatibility.patch" - - # Linux 3.6 Support - epatch "${FILESDIR}/${PN}-0.6.0_rc11-linux-3.6-compat-0-elevator-change.patch" - epatch "${FILESDIR}/${PN}-0.6.0_rc11-linux-3.6-compat-1.patch" - epatch "${FILESDIR}/${PN}-0.6.0_rc11-linux-3.6-compat-2.patch" - epatch "${FILESDIR}/${PN}-0.6.0_rc11-linux-3.6-compat-3.patch" - epatch "${FILESDIR}/${PN}-0.6.0_rc11-linux-3.6-compat-4.patch" - epatch "${FILESDIR}/${PN}-0.6.0_rc11-linux-3.6-compat-5.patch" - - # Cast constant for 32-bit compatibility - epatch "${FILESDIR}/${PN}-0.6.0_rc14-cast-const-for-32bit-compatibility.patch" - - # Fix barrier regression on Linux 2.6.37 and later - epatch "${FILESDIR}/${PN}-0.6.0_rc14-flush-properly.patch" - fi - - # Remove GPLv2-licensed ZPIOS unless we are debugging - use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" - - autotools-utils_src_prepare -} - -src_configure() { - use custom-cflags || strip-flags - set_arch_to_kernel - local myeconfargs=( - --bindir="${EPREFIX}/bin" - --sbindir="${EPREFIX}/sbin" - dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown - --with-config=kernel - --with-linux="${KV_DIR}" - --with-linux-obj="${KV_OUT_DIR}" - $(use_enable debug) - ) - autotools-utils_src_configure -} - -src_install() { - autotools-utils_src_install -} - -pkg_postinst() { - linux-mod_pkg_postinst - - use x86 && ewarn "32-bit kernels are unsupported by ZFSOnLinux upstream. Do not file bug reports." - -} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc11-r3.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc11-r3.ebuild deleted file mode 100644 index 01cb2d9e9c08..000000000000 --- a/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc11-r3.ebuild +++ /dev/null @@ -1,129 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc11-r3.ebuild,v 1.4 2013/04/17 13:27:54 ryao Exp $ - -EAPI="4" - -AT_M4DIR="config" -AUTOTOOLS_AUTORECONF="1" -AUTOTOOLS_IN_SOURCE_BUILD="1" - -inherit bash-completion-r1 flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils - -if [ ${PV} == "9999" ] ; then - inherit git-2 - EGIT_REPO_URI="git://github.com/zfsonlinux/zfs.git" -else - inherit eutils versionator - MY_PV=$(replace_version_separator 3 '-') - SRC_URI="mirror://github/zfsonlinux/zfs/zfs-${MY_PV}.tar.gz" - S="${WORKDIR}/zfs-${MY_PV}" - KEYWORDS="~amd64" -fi - -DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" -HOMEPAGE="http://zfsonlinux.org/" - -LICENSE="CDDL debug? ( GPL-2+ )" -SLOT="0" -IUSE="custom-cflags debug +rootfs" -RESTRICT="test" - -DEPEND=" - =sys-kernel/spl-${PV}* - dev-lang/perl - virtual/awk -" - -RDEPEND="${DEPEND} - !sys-fs/zfs-fuse -" - -pkg_setup() { - linux-info_pkg_setup - CONFIG_CHECK="!DEBUG_LOCK_ALLOC - BLK_DEV_LOOP - EFI_PARTITION - IOSCHED_NOOP - MODULES - !PAX_KERNEXEC_PLUGIN_METHOD_OR - ZLIB_DEFLATE - ZLIB_INFLATE - " - - use rootfs && \ - CONFIG_CHECK="${CONFIG_CHECK} BLK_DEV_INITRD - DEVTMPFS" - - kernel_is ge 2 6 26 || die "Linux 2.6.26 or newer required" - - [ ${PV} != "9999" ] && \ - { kernel_is le 3 6 || die "Linux 3.6 is the latest supported version."; } - - check_extra_config -} - -src_prepare() { - if [ ${PV} != "9999" ] - then - # Fix various deadlocks - epatch "${FILESDIR}/${P}-fix-32-bit-integer-size-mismatch.patch" - epatch "${FILESDIR}/${P}-fix-i386-infinite-loop.patch" - epatch "${FILESDIR}/${P}-fix-rename-failure.patch" - epatch "${FILESDIR}/${P}-fix-zvol_probe-null.patch" - epatch "${FILESDIR}/${P}-return-positive-error.patch" - - # Linux 3.6 Support - epatch "${FILESDIR}/${P}-linux-3.6-compat-0-elevator-change.patch" - - epatch "${FILESDIR}/${P}-linux-3.6-compat-1.patch" - epatch "${FILESDIR}/${P}-linux-3.6-compat-2.patch" - epatch "${FILESDIR}/${P}-linux-3.6-compat-3.patch" - epatch "${FILESDIR}/${P}-linux-3.6-compat-4.patch" - epatch "${FILESDIR}/${P}-linux-3.6-compat-5.patch" - - # Cast constant for 32-bit compatibility - epatch "${FILESDIR}/${PN}-0.6.0_rc14-cast-const-for-32bit-compatibility.patch" - - # Handle missing name length check in Linux VFS - epatch "${FILESDIR}/${PN}-0.6.0_rc14-vfs-name-length-compatibility.patch" - - # Fix barrier regression on Linux 2.6.37 and later - epatch "${FILESDIR}/${PN}-0.6.0_rc14-flush-properly.patch" - fi - - # Remove GPLv2-licensed ZPIOS unless we are debugging - use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" - - autotools-utils_src_prepare -} - -src_configure() { - use custom-cflags || strip-flags - set_arch_to_kernel - local myeconfargs=( - --bindir="${EPREFIX}/bin" - dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown - --sbindir="${EPREFIX}/sbin" - --with-config=kernel - --with-linux="${KV_DIR}" - --with-linux-obj="${KV_OUT_DIR}" - $(use_enable debug) - ) - autotools-utils_src_configure -} - -src_install() { - autotools-utils_src_install -} - -pkg_postinst() { - linux-mod_pkg_postinst - - if use x86 || use arm - then - ewarn "32-bit kernels will likely require increasing vmalloc to" - ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." - fi - -} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc12-r3.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc12-r3.ebuild deleted file mode 100644 index e97bc13c1dc5..000000000000 --- a/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc12-r3.ebuild +++ /dev/null @@ -1,119 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc12-r3.ebuild,v 1.4 2013/04/17 13:27:54 ryao Exp $ - -EAPI="4" - -AT_M4DIR="config" -AUTOTOOLS_AUTORECONF="1" -AUTOTOOLS_IN_SOURCE_BUILD="1" - -inherit bash-completion-r1 flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils - -if [ ${PV} == "9999" ] ; then - inherit git-2 - EGIT_REPO_URI="git://github.com/zfsonlinux/zfs.git" -else - inherit eutils versionator - MY_PV=$(replace_version_separator 3 '-') - S="${WORKDIR}/zfs-${MY_PV}" - SRC_URI="mirror://github/zfsonlinux/zfs/zfs-${MY_PV}.tar.gz - http://dev.gentoo.org/~ryao/dist/${PN}-${MY_PV}-p0.tar.xz" - KEYWORDS="~amd64" -fi - -DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" -HOMEPAGE="http://zfsonlinux.org/" - -LICENSE="CDDL debug? ( GPL-2+ )" -SLOT="0" -IUSE="custom-cflags debug +rootfs" -RESTRICT="test" - -DEPEND=" - =sys-kernel/spl-${PV}* - dev-lang/perl - virtual/awk -" - -RDEPEND="${DEPEND} - !sys-fs/zfs-fuse -" - -pkg_setup() { - linux-info_pkg_setup - CONFIG_CHECK="!DEBUG_LOCK_ALLOC - BLK_DEV_LOOP - EFI_PARTITION - IOSCHED_NOOP - MODULES - !PAX_KERNEXEC_PLUGIN_METHOD_OR - ZLIB_DEFLATE - ZLIB_INFLATE - " - - use rootfs && \ - CONFIG_CHECK="${CONFIG_CHECK} BLK_DEV_INITRD - DEVTMPFS" - - kernel_is ge 2 6 26 || die "Linux 2.6.26 or newer required" - - [ ${PV} != "9999" ] && \ - { kernel_is le 3 8 || die "Linux 3.8 is the latest supported version."; } - - check_extra_config -} - -src_prepare() { - if [ ${PV} != "9999" ] - then - # Apply patch set - EPATCH_SUFFIX="patch" \ - EPATCH_FORCE="yes" \ - epatch "${WORKDIR}/${PN}-${MY_PV}-patches" - - # Cast constant for 32-bit compatibility - epatch "${FILESDIR}/${PN}-0.6.0_rc14-cast-const-for-32bit-compatibility.patch" - - # Handle missing name length check in Linux VFS - epatch "${FILESDIR}/${PN}-0.6.0_rc14-vfs-name-length-compatibility.patch" - - # Fix barrier regression on Linux 2.6.37 and later - epatch "${FILESDIR}/${PN}-0.6.0_rc14-flush-properly.patch" - fi - - # Remove GPLv2-licensed ZPIOS unless we are debugging - use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in" - - autotools-utils_src_prepare -} - -src_configure() { - use custom-cflags || strip-flags - set_arch_to_kernel - local myeconfargs=( - --bindir="${EPREFIX}/bin" - --sbindir="${EPREFIX}/sbin" - --with-config=kernel - --with-linux="${KV_DIR}" - --with-linux-obj="${KV_OUT_DIR}" - $(use_enable debug) - ) - autotools-utils_src_configure -} - -src_install() { - dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown - autotools-utils_src_install -} - -pkg_postinst() { - linux-mod_pkg_postinst - - if use x86 || use arm - then - ewarn "32-bit kernels will likely require increasing vmalloc to" - ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." - fi - -} |