Brian Behlendorf
45d1cae3b8
Rebase master to b121
2009-08-18 11:43:27 -07:00
Brian Behlendorf
2b54211968
Merge branch 'linux-kernel-disk' into refs/top-bases/linux-zfs-branch
2009-07-29 17:51:33 -07:00
Brian Behlendorf
4014bd401f
Major vdev_disk feature and API (thru 2.6.30) update.
...
Tested under CHAOS4.2, RHEL5, SLES11, and FC11 (all x86_64)
Features:
Honor spa_mode() when opening the block device. Previously this
was ignored and devices were always opened read/write.
Integrated DKIOCFLUSHWRITECACHE zio operation with linux WRITE_BARRIER
for kernels post 2.6.24 where empty bio requests are supported. For
earlier kernels ENOTSUP is returned and no barriers are performed. If
RHEL5 based kernels are intended to be supported long term we may need
make use of the old akward API.
With the addition of WRITE_BARRIER support all writes which were
WRITE_SYNC can now be safely made WRITE bios. They will now take
advantage of aggregation in the elevator and improved write performance
is likely.
Notice the ZIO_FLAG_SPECULATIVE flag and pass along the hint to the
elevator by using READA instead of READ. This provides the elevator
the ability to prioritize the real READs ahead of the speculative IO
if needed.
Implement an initial version of vdev_disk_io_done() which in the case
of an EIO error triggers a media change check. If it determines a
media change has occured we fail the device and remove it from the
config. This logic I'm sure can be improved further but for now it
is an improvement over the VERIFY() that no error will ever happen.
APIs:
2.6.22 API change
Unused destroy_dirty_buffers arg removed from prototype.
2.6.24 API change
Empty write barriers are now supported and we should use them.
2.6.24 API change
Size argument dropped from bio_endio and bi_end_io, because the
bi_end_io is only called once now when the request is complete.
There is no longer any need for a size argument. This also means
that partial IO's are no longer possibe and the end_io callback
should not check bi->bi_size. Finally, the return type was updated
to void.
2.6.28 API change
open/close_bdev_excl() renamed to open/close_bdev_exclusive().
2.6.29 API change
BIO_RW_SYNC renamed to BIO_RW_SYNCIO.
2009-07-29 17:24:08 -07:00
Brian Behlendorf
62806e60d6
Merge branch 'linux-have-uio-rw' into refs/top-bases/linux-zfs-branch
2009-07-10 11:51:14 -07:00
Brian Behlendorf
91fcf9d661
Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw
2009-07-10 11:51:11 -07:00
Brian Behlendorf
8a5b47ebb5
Add dmu_write_impl() prototype needed by zpios until a clean
...
zerocopy interface is available.
2009-07-10 11:39:37 -07:00
Brian Behlendorf
4d410127b0
Merge branch 'linux-have-sysevent' into refs/top-bases/linux-zfs-branch
2009-07-09 08:49:29 -07:00
Brian Behlendorf
cc6e67fa7f
Wrap sysevent includes until sysevent or something like it is implemented.
2009-07-09 08:40:33 -07:00
Brian Behlendorf
e49bdb470e
Merge branch 'linux-have-uio-rw' into refs/top-bases/linux-zfs-branch
2009-07-06 17:01:42 -07:00
Brian Behlendorf
169b3085db
Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw
...
Conflicts:
module/zfs/dmu.c
2009-07-06 17:01:30 -07:00
Brian Behlendorf
1175906fbc
Update zerocopy patch to be consistent with new flags arg
...
passed to dmu_read(). It would be nice to have one of these
for dmu_write() as well but we have do without for now.
2009-07-06 16:01:41 -07:00
Brian Behlendorf
a6b1465e30
Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl
...
Conflicts:
module/zfs/include/sys/zfs_fuid.h
module/zfs/zfs_fuid.c
module/zfs/zfs_ioctl.c
module/zfs/zfs_vfsops.c
module/zfs/zfs_znode.c
2009-07-06 15:16:54 -07:00
Brian Behlendorf
f48b799f78
Merge commit 'refs/top-bases/linux-kernel-disk' into linux-kernel-disk
2009-07-06 15:03:09 -07:00
Brian Behlendorf
ae68a8980c
Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw
...
Conflicts:
module/zfs/include/sys/dmu.h
2009-07-06 15:02:33 -07:00
Brian Behlendorf
1cf1a077cd
Merge commit 'refs/top-bases/linux-debug-zerocopy' into linux-debug-zerocopy
...
Conflicts:
module/zfs/dmu.c
module/zfs/include/sys/dmu.h
2009-07-06 15:00:24 -07:00
Brian Behlendorf
4fa3570131
Merge commit 'refs/top-bases/linux-have-sysevent' into linux-have-sysevent
2009-07-06 13:47:16 -07:00
Brian Behlendorf
266a7d8cd7
Merge commit 'refs/top-bases/linux-kernel-module' into linux-kernel-module
...
Conflicts:
module/zcommon/zfs_namecheck.c
module/zfs/spa.c
module/zfs/vdev.c
module/zfs/zap_micro.c
2009-07-06 13:47:04 -07:00
Brian Behlendorf
149c4b2731
Merge branch 'linux-arc' into refs/top-bases/linux-zfs-branch
...
Conflicts:
cmd/ztest/ztest.c
lib/libzfs/libzfs_pool.c
module/zcommon/zfs_namecheck.c
module/zfs/dmu.c
module/zfs/include/sys/dmu.h
module/zfs/include/sys/zfs_fuid.h
module/zfs/spa.c
module/zfs/vdev.c
module/zfs/zap_micro.c
module/zfs/zfs_fuid.c
module/zfs/zfs_ioctl.c
module/zfs/zfs_vfsops.c
module/zfs/zfs_znode.c
2009-07-06 13:40:29 -07:00
Brian Behlendorf
a1ccb00b7e
Merge branch 'gcc-branch' into refs/top-bases/zfs-branch
...
Conflicts:
cmd/ztest/ztest.c
module/zfs/zil.c
2009-07-06 13:11:34 -07:00
Brian Behlendorf
a06a428e15
Merge commit 'refs/top-bases/gcc-ident-pragmas' into gcc-ident-pragmas
...
Conflicts:
cmd/zdb/zdb_il.c
cmd/zinject/zinject.c
lib/libzfs/libzfs_graph.c
module/zcommon/include/sys/fm/fs/zfs.h
module/zcommon/include/zfs_deleg.h
module/zcommon/include/zfs_namecheck.h
module/zcommon/zfs_deleg.c
module/zcommon/zfs_namecheck.c
module/zcommon/zprop_common.c
module/zfs/dmu_object.c
module/zfs/dsl_prop.c
module/zfs/fletcher.c
module/zfs/include/sys/dsl_deleg.h
module/zfs/include/sys/dsl_prop.h
module/zfs/include/sys/metaslab_impl.h
module/zfs/include/sys/spa_boot.h
module/zfs/include/sys/zap.h
module/zfs/include/sys/zap_impl.h
module/zfs/include/sys/zfs_context.h
module/zfs/include/sys/zfs_ctldir.h
module/zfs/include/sys/zfs_dir.h
module/zfs/include/sys/zfs_fuid.h
module/zfs/include/sys/zfs_ioctl.h
module/zfs/spa_errlog.c
module/zfs/spa_history.c
module/zfs/zap.c
module/zfs/zap_leaf.c
module/zfs/zap_micro.c
2009-07-02 17:06:20 -07:00
Brian Behlendorf
e2b2597751
Merge branch 'gcc-c90' into refs/top-bases/gcc-branch
...
Conflicts:
cmd/zdb/zdb_il.c
cmd/zfs/zfs_main.c
cmd/zinject/zinject.c
cmd/ztest/ztest.c
lib/libzfs/libzfs_dataset.c
lib/libzfs/libzfs_graph.c
module/zcommon/include/sys/fm/fs/zfs.h
module/zcommon/include/zfs_deleg.h
module/zcommon/include/zfs_namecheck.h
module/zcommon/zfs_deleg.c
module/zcommon/zfs_namecheck.c
module/zcommon/zprop_common.c
module/zfs/arc.c
module/zfs/dmu.c
module/zfs/dmu_object.c
module/zfs/dmu_objset.c
module/zfs/dsl_pool.c
module/zfs/dsl_prop.c
module/zfs/fletcher.c
module/zfs/include/sys/dsl_deleg.h
module/zfs/include/sys/dsl_prop.h
module/zfs/include/sys/metaslab_impl.h
module/zfs/include/sys/spa_boot.h
module/zfs/include/sys/zap.h
module/zfs/include/sys/zap_impl.h
module/zfs/include/sys/zfs_context.h
module/zfs/include/sys/zfs_ctldir.h
module/zfs/include/sys/zfs_dir.h
module/zfs/include/sys/zfs_fuid.h
module/zfs/include/sys/zfs_ioctl.h
module/zfs/spa.c
module/zfs/spa_errlog.c
module/zfs/spa_history.c
module/zfs/zap.c
module/zfs/zap_leaf.c
module/zfs/zap_micro.c
module/zfs/zfs_ioctl.c
module/zfs/zio.c
2009-07-02 16:49:11 -07:00
Brian Behlendorf
9babb37438
Rebase master to b117
2009-07-02 15:44:48 -07:00
Brian Behlendorf
4f2dfa3c94
Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl
2009-03-19 21:13:11 -07:00
Brian Behlendorf
b08807315c
Merge commit 'refs/top-bases/linux-kernel-disk' into linux-kernel-disk
2009-03-19 21:09:02 -07:00
Brian Behlendorf
57c6cf3c4c
Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw
2009-03-19 21:08:41 -07:00
Brian Behlendorf
bf3d911bc1
Merge commit 'refs/top-bases/linux-debug-zerocopy' into linux-debug-zerocopy
2009-03-19 21:08:39 -07:00
Brian Behlendorf
0173e5dce7
Merge commit 'refs/top-bases/linux-have-sysevent' into linux-have-sysevent
2009-03-19 21:08:22 -07:00
Brian Behlendorf
275f4aae5d
Merge commit 'refs/top-bases/linux-kernel-module' into linux-kernel-module
...
Conflicts:
module/zfs/dmu_tx.c
2009-03-19 21:08:17 -07:00
Brian Behlendorf
7f33364d3c
Merge branch 'linux-docs' into refs/top-bases/linux-zfs-branch
...
Conflicts:
lib/libzpool/include/sys/zfs_context.h
module/zfs/dmu_tx.c
module/zfs/txg.c
2009-03-19 21:03:58 -07:00
Brian Behlendorf
eb811f7fa9
Merge branch 'feature-branch' into refs/top-bases/zfs-branch
...
Conflicts:
module/zfs/include/sys/dmu_tx.h
module/zfs/include/sys/txg.h
2009-03-19 20:59:12 -07:00
Brian Behlendorf
f180959bac
Merge branch 'feature-pthreads' into refs/top-bases/feature-branch
2009-03-19 20:51:18 -07:00
Brian Behlendorf
29703a5b4e
Add 'feature-commit-cb' branch for DMU commit callbacks.
2009-03-19 20:30:14 -07:00
Brian Behlendorf
a9eba02cdb
Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl
2009-03-19 15:31:53 -07:00
Brian Behlendorf
7c39f7c920
Merge commit 'refs/top-bases/linux-kernel-disk' into linux-kernel-disk
2009-03-19 15:30:57 -07:00
Brian Behlendorf
852952d742
Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw
2009-03-19 15:30:44 -07:00
Brian Behlendorf
146fb170ef
Merge commit 'refs/top-bases/linux-debug-zerocopy' into linux-debug-zerocopy
2009-03-19 15:30:43 -07:00
Brian Behlendorf
86681399b8
Merge commit 'refs/top-bases/linux-have-sysevent' into linux-have-sysevent
2009-03-19 15:30:33 -07:00
Brian Behlendorf
e1540e9cbb
Merge commit 'refs/top-bases/linux-kernel-module' into linux-kernel-module
2009-03-19 15:30:32 -07:00
Brian Behlendorf
7e8fa40f4d
Merge branch 'linux-arc' into refs/top-bases/linux-zfs-branch
2009-03-19 15:29:38 -07:00
Brian Behlendorf
2518c98d9e
Merge branch 'fix-branch' into refs/top-bases/zfs-branch
2009-03-19 15:29:34 -07:00
Brian Behlendorf
c8c4948d00
Merge branch 'fix-dnode-cons' into refs/top-bases/fix-branch
2009-03-19 15:29:33 -07:00
Brian Behlendorf
60d25f4b93
The patch resolves the extra call to dnode_cons() in dnode_create().
...
The extra call to the constructor was there to reinitialize the non-
trivial primatives in the dnode (lists, mutexs, condvars, avl tree, etc).
This was safe, although not exactly clean, on Solaris because none of
the primitives allocate memory. In the Linux port this is not true.
To keep stack usage to a minimum several of the primatives dynamically
allocate memory thus initializing them twice results in a memory leak.
This patch resolves this problem for Solaris and Linux by ensuring all
*_inits are called in the constructor, and all *_destroys are called
in the destructor. Additionally we ensure that all dnode objects are
properly deconstructed before being freed to the slab, and when the
objects are allocated from the slab all required data members are
explicity initialized to correct values.
2009-03-19 15:22:48 -07:00
Brian Behlendorf
af12291488
Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl
...
Conflicts:
module/zfs/rrwlock.c
module/zfs/zfs_replay.c
2009-03-11 11:22:11 -07:00
Brian Behlendorf
fbe3b02667
Merge commit 'refs/top-bases/linux-kernel-disk' into linux-kernel-disk
2009-03-11 11:18:54 -07:00
Brian Behlendorf
f39cd76b0b
Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw
2009-03-11 11:18:05 -07:00
Brian Behlendorf
96cc021270
Merge commit 'refs/top-bases/linux-debug-zerocopy' into linux-debug-zerocopy
2009-03-11 11:18:01 -07:00
Brian Behlendorf
d402ab0f39
Merge commit 'refs/top-bases/linux-have-sysevent' into linux-have-sysevent
2009-03-11 11:17:38 -07:00
Brian Behlendorf
7a08ef9d52
Merge commit 'refs/top-bases/linux-kernel-module' into linux-kernel-module
...
Conflicts:
module/zfs/spa_boot.c
2009-03-11 11:17:23 -07:00
Brian Behlendorf
bf200630f9
Merge branch 'linux-arc' into refs/top-bases/linux-zfs-branch
...
Conflicts:
module/zfs/rrwlock.c
module/zfs/spa_boot.c
module/zfs/zfs_replay.c
2009-03-11 11:12:24 -07:00
Brian Behlendorf
5f30a3cb0e
Merge branch 'gcc-branch' into refs/top-bases/zfs-branch
2009-03-11 11:09:11 -07:00
Brian Behlendorf
8fe801fd8f
Merge branch 'gcc-ident-pragmas' into refs/top-bases/gcc-branch
2009-03-11 11:00:42 -07:00
Ricardo M. Correia
af45030850
Added 'gcc-ident-pragmas' branch.
2009-03-11 10:59:45 -07:00
Brian Behlendorf
2ff4ee3cae
Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl
2009-03-11 10:44:51 -07:00
Brian Behlendorf
4f57a6ccb6
Merge commit 'refs/top-bases/linux-kernel-disk' into linux-kernel-disk
2009-03-11 10:43:09 -07:00
Brian Behlendorf
a3da614c79
Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw
2009-03-11 10:42:31 -07:00
Brian Behlendorf
4231a48b17
Merge commit 'refs/top-bases/linux-debug-zerocopy' into linux-debug-zerocopy
2009-03-11 10:42:30 -07:00
Brian Behlendorf
5f4e78b6cc
Merge commit 'refs/top-bases/linux-have-sysevent' into linux-have-sysevent
2009-03-11 10:42:10 -07:00
Brian Behlendorf
5067076033
Merge commit 'refs/top-bases/linux-kernel-module' into linux-kernel-module
2009-03-11 10:42:09 -07:00
Brian Behlendorf
73c738d1ce
Merge branch 'linux-arc' into refs/top-bases/linux-zfs-branch
2009-03-11 10:40:37 -07:00
Brian Behlendorf
d43e9ca262
Merge branch 'gcc-branch' into refs/top-bases/zfs-branch
2009-03-11 10:40:31 -07:00
Brian Behlendorf
d641369d38
Merge branch 'gcc-64bit-constants' into refs/top-bases/gcc-branch
2009-03-11 10:32:45 -07:00
Ricardo M. Correia
fd9a7a0fb4
Add 'ull' suffix to 64-bit constants.
2009-03-11 10:31:24 -07:00
Brian Behlendorf
7b8eca908f
Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl
...
Conflicts:
cmd/zpool/zpool_main.c
2009-02-18 14:38:20 -08:00
Brian Behlendorf
3d4185ed1d
Merge commit 'refs/top-bases/linux-kernel-disk' into linux-kernel-disk
2009-02-18 14:35:43 -08:00
Brian Behlendorf
47c6526993
Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw
2009-02-18 14:35:09 -08:00
Brian Behlendorf
8241395b5a
Merge commit 'refs/top-bases/linux-debug-zerocopy' into linux-debug-zerocopy
2009-02-18 14:35:05 -08:00
Brian Behlendorf
855a863bb2
Merge commit 'refs/top-bases/linux-have-sysevent' into linux-have-sysevent
2009-02-18 14:34:48 -08:00
Brian Behlendorf
9f4865e4ca
Merge commit 'refs/top-bases/linux-kernel-module' into linux-kernel-module
2009-02-18 14:34:45 -08:00
Brian Behlendorf
8090a9a908
Merge branch 'linux-arc' into refs/top-bases/linux-zfs-branch
...
Conflicts:
cmd/zpool/zpool_main.c
2009-02-18 14:31:46 -08:00
Brian Behlendorf
87307ab12a
Merge commit 'refs/top-bases/feature-zap-cursor-to-key' into feature-zap-cursor-to-key
2009-02-18 14:30:48 -08:00
Brian Behlendorf
6fe19bd252
Merge branch 'fix-clock-wrap' into refs/top-bases/fix-branch
...
Conflicts:
lib/libzpool/kernel.c
module/zfs/arc.c
2009-02-18 14:28:15 -08:00
Brian Behlendorf
f0a8aedfbc
Merge branch 'gcc-branch' into refs/top-bases/zfs-branch
...
Conflicts:
lib/libzpool/kernel.c
module/zfs/arc.c
2009-02-18 14:27:12 -08:00
Brian Behlendorf
f686a87058
Merge branch 'gcc-c90' into refs/top-bases/gcc-branch
...
Conflicts:
module/zfs/arc.c
2009-02-18 13:12:26 -08:00
Brian Behlendorf
d164b20935
Rebase master to b108
2009-02-18 12:51:31 -08:00
Brian Behlendorf
adcb983918
Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl
2009-01-15 14:22:14 -08:00
Brian Behlendorf
465b2c795d
Merge commit 'refs/top-bases/linux-kernel-disk' into linux-kernel-disk
2009-01-15 14:21:24 -08:00
Brian Behlendorf
924bc262cc
Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw
2009-01-15 14:21:05 -08:00
Brian Behlendorf
ee1faab64d
Merge commit 'refs/top-bases/linux-debug-zerocopy' into linux-debug-zerocopy
2009-01-15 14:21:03 -08:00
Brian Behlendorf
767928dcd2
Merge commit 'refs/top-bases/linux-have-sysevent' into linux-have-sysevent
2009-01-15 14:20:55 -08:00
Brian Behlendorf
091a4a4ca4
Resolve conflict with removed cleaner type
2009-01-15 14:20:49 -08:00
Brian Behlendorf
1f372d9030
Resolve conflict with removed cleaner type
2009-01-15 14:18:01 -08:00
Brian Behlendorf
27cf20b0d6
Merge commit 'refs/top-bases/feature-zap-cursor-to-key' into feature-zap-cursor-to-key
2009-01-15 14:16:19 -08:00
Brian Behlendorf
551838a6c8
Resolve conflict with removed cleaner type
2009-01-15 14:13:39 -08:00
Brian Behlendorf
da7151a89e
Resolve conflict with removed cleaner type
2009-01-15 14:11:19 -08:00
Brian Behlendorf
3fa768e21b
Resolve conflict with removed cleaner type
2009-01-15 14:04:35 -08:00
Brian Behlendorf
fb5f0bc833
Rebase master to b105
2009-01-15 13:59:39 -08:00
Brian Behlendorf
14f8f1d4bf
Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl
2009-01-13 15:03:50 -08:00
Brian Behlendorf
e095be1cc5
Merge commit 'refs/top-bases/linux-kernel-disk' into linux-kernel-disk
2009-01-13 15:03:12 -08:00
Brian Behlendorf
28d3375587
Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw
2009-01-13 15:02:58 -08:00
Brian Behlendorf
3486f62c97
Merge commit 'refs/top-bases/linux-debug-zerocopy' into linux-debug-zerocopy
2009-01-13 15:02:57 -08:00
Brian Behlendorf
fd1da7d6b9
Merge commit 'refs/top-bases/linux-have-sysevent' into linux-have-sysevent
2009-01-13 15:02:50 -08:00
Brian Behlendorf
042deede25
Merge commit 'refs/top-bases/linux-kernel-module' into linux-kernel-module
2009-01-13 15:02:49 -08:00
Brian Behlendorf
149c57fd06
Merge branch 'linux-arc' into refs/top-bases/linux-zfs-branch
2009-01-13 15:02:15 -08:00
Brian Behlendorf
4a5bd7a3a8
Merge branch 'fix-branch' into refs/top-bases/zfs-branch
2009-01-13 15:02:11 -08:00
Brian Behlendorf
bec036636e
List cleanup and use of list_node_init initializer
2009-01-13 15:00:12 -08:00
Brian Behlendorf
1cf2f6a63e
Merge branch 'linux-have-zpl' into refs/top-bases/linux-zfs-branch
2009-01-09 15:57:21 -08:00
Brian Behlendorf
1475f7234b
Make the ZPL only bits conditional
2009-01-09 15:55:19 -08:00
Brian Behlendorf
c0f45a99fc
Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw
2009-01-09 15:52:08 -08:00
Brian Behlendorf
3f70ee0f8a
Merge commit 'refs/top-bases/linux-debug-zerocopy' into linux-debug-zerocopy
2009-01-09 15:52:07 -08:00
Brian Behlendorf
2148f8256b
Merge branch 'linux-have-sysevent' into refs/top-bases/linux-zfs-branch
2009-01-09 15:52:02 -08:00