aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog
blob: 73d92055dc79603b34e3e7645dc4380e34e380f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
2009-08-04 Brian Behlendorf <behlendorf1@llnl.gov>

	* : Tag zfs-0.4.5 - Use 'git log --no-merges' for full change log.

	* FC11 and SLES11 support: This includes all compatibility changes
	to support 2.6.29 based kernels and the required build system
	improvements.
	* lib/libspl/asm-generic/atomic.c: Generic user space atomic support.
	* module/zpios/zpios.c: Register a basic compat ioctl handler for
	32-bit user vs 64-bit kernel compatibility.  This is the default
	build environment for all 64-bit SLES systems.  Additionally
	replace the use of 'struct timespec' which uses longs internally
	and is therefore different sizes on 32-bit vs 64-bit objects with
	'struct zpios_timespec_t'.a
	* config/kernel.m4: Check arch/default path when detecting kernel
	objects under SLES.  We still preferentially use arch/arch if
	available but if that fails it is acceptable to use default.
	* config/kernel.m4: Remove LINUXINCLUDE from autoconf wrapper.
	This breaks the 2.6.28+ kernels build system, all kernel build systems
	at least post 2.6.16 will set this properly so we should not.
	* lib/libspl/include/assert.h: Add ASSERTV macro to simplify removing
	variables (the V in ASSERTV) which are only used in ASSERT().
	Also revert all previously modified ASSERT()s to their original
	definitions and use the ASSERTV macro to handle unused variables.
	* module/zpios/zpios.c: Use spl device interfaces for portability.
	* scripts/common.sh: The losetup -f option is unavailable for
	SLES10 use the unused_loop_device() common function.  Additionally
	LOSETUP is now used to portably reference the losetup binary.
	* module/zfs/vdev_disk.c: Unused destroy_dirty_buffers arg removed.
	* module/zfs/vdev_disk.c: BIO_RW_SYNC renamed to BIO_RW_SYNCIO.
	* module/zfs/vdev_disk.c: open/close_bdev_excl() renamed to
	open/close_bdev_exclusive().
	* module/zfs/vdev_disk.c: Empty write barriers are supported as of
	linux 2.6.24 and are now used to implement DKIOCFLUSHWRITECACHE.
	* module/zfs/vdev_disk.c: The bi_end_io API changes make partial
	IO's impossible handle this case cleanly.
	* module/zfs/vdev_disk.c: BIO_RW_FAILFAST replaced with
	BIO_RW_FAILFAST_{DEV|_TRANSPORT|_DRIVER}, use the legacy
	BIO_RW_FAILFAST flag if it exists for now.
	* module/zfs/dmu_objset.c, module/zfs/spa_history.c: Excessively
	large stack frames (>2048) were detected in dmu_objset_snapshot()
	and spa_history_log() and were reduced by allocating from the heap.

	* Rebased to ZFS b117 from OpenSolaris:
	* module/zfs/dmu.c: Update zerocopy patch to be consistent with
	new flags arg passed to dmu_read().
	* module/zpios/zpios.c: Update zpios to be aware of the new flags
	argument available in dmu_read().  Additionally add a zpios command
	line flag to set the DMU_READ_NO_PREFETCH flag for a test.
	* module/zfs/include/sys/zfs_context.h: Wrap new sysevent includes
	until sysevent or something like it is implemented.
	* module/zfs/zfs_ioctl.c: Wrap all the ACL interfaces with HAVE_ZPL.
	They are integrated with the vfs layer which is not yet supported.
	* module/zcommon/zfs_prop.c: Export new quota related symbols.
	* lib/libzfs/libzfs_util.c: Increase buffer size for nvlist which
	is needed for large configurations.

	* Bug fixes:
	* lib/libspl/include/sys/zfs_debug.h: Removed duplicate file.
	* lib/libspl/include/sys/isa_defs.h: Fixed missing macro definitions
	for little endian and big endian.
	* cmd/zpios/zpios_main.c: Pretty-up the zpios 'make check' output.
	* module/zfs/vdev_disk.c: Honor spa_mode() when opening block devs.
	* module/zfs/vdev_disk.c: Initial error handling added to
	vdev_disk_io_done() to revalidate the media on EIO.
	* lib/libzfs/libzfs_util.c: Fix an accidentally introduced formatting
	issue in zfs_nicenum() output.
	
2009-07-02 Brian Behlendorf <behlendorf1@llnl.gov>

	* : Tag zfs-0.4.4 - Use 'git log --no-merges' for full change log.

	* : Generic distro friendly build system / packaging improvements
	for RPM based distros including CHAOS, RHEL, Fedora, and SLES.

	These changes bring the zfs-0.4.4 tree in to compliance with
	the spl-0.4.4 packaging changes.  The bottom line is 2 source
	rpms and 4 binary rpms will now be generated when creating
	packages there will be:

	zfs-<version>.src.rpm
	- Fully rebuildable source rpm for libzfs and utils.
	zfs-modules-<version>.src.rpm
	- Fully rebuildable source rpm for kernel modules.

	zfs-<version>.<arch>.rpm
	- Binary rpm for libzfs and utils.  The utils in this package are
	  compatible with all zfs-module rpms of the same version.
	zfs-devel-<version>.<arch>.rpm
	- Binary rpm containing headers for building against libzfs libraries.

	zfs-modules-<verion>-<kernel>.arch.rpm
	- Binary rpm containing the kernel modules for a specific kernel build.
	  The package name contains the kernel version and you should have one
	  of these packages installed to match every kernel on your system.
	zfs-modules-devel-<verion>-<kernel>.arch.rpm
	- Binary rpm containing development header and module symbols needed
	  for building additional kernel modules which are dependent on the
	  zfs module stack.

	* : SLES9/10 distro support added: Several significant updates to
	the build system were required to support this including:

	- Autoconf macros updated to be aware of the standard install
	locations for SLES kernel sources and build objects.  Additionally
	changes were made to support multiple names for Module{s}.symvers.
	- By default on SLES all user space builds are 32-bit even on
	64-bit arches.  This means we need to be careful to pass -m64 in
	the autoconf checks which probe the kernel.  Additionally, 
	ioctl_compat handles still need to be added so 32-bit user
	binarys can perform ioctls with the 64-bit kernel.

	* : Powerpc64 support added:

	- 64-bit user space atomic support for power64 was obtained from
	an old version of OpenSolaris which offered minimal powerpc support.
	The atomic support is not 100% fully implemented but it's a good
	first step towards cleanly supporting the architecture.
	- Added powerpc ISA type.
	- Explictly use signed char for portability.  On x86/x86_64
	systems the default char type is signed, on ppc/ppc64 systems
	the default char type is unsigned.
	- Core target arch support for conditional compilation of SUBDIRs.
	Required by libspl for its arch specific atomic implementations.

	* COPYRIGHT: Readded accidentally dropped COPYRIGHT, it just
	references the OPENSOLARIS.LICENSE which was still in the project.

	* module/zfs/dmu_tx.c: Add EXPORT_SYMBOL(dmu_tx_callback_register).

	* config/user-zlib.m4: Add basic zlib autoconf check for user space.

2009-03-20 Brian Behlendorf <behlendorf1@llnl.gov>

	* : Tag zfs-0.4.3 - Use 'git log --no-merges' for full change log.

	* : Rebased to ZFS b108 from OpenSolaris

	* configure.ac, *Makefile.am: Build system update.  This includes
	resolving various build issues and adding support for the remaining
	common build targets.  Available targets now include:

	- make all        # Build everything
	- make install    # Install everything
	- make clean      # Clean up build products
	- make distclean  # Clean up everything
	- make dist       # Create package tarball
	- make srpm       # Create package source RPM
	- make rpm        # Create package binary RPMs
	- make tags       # Create ctags and etags for everything

	Extra care was taken to ensure that the source RPMs are fully
	rebuildable against Fedora/RHEL/Chaos kernels.  To build binary
	RPMs from the source RPM for your system simply run:

	rpmbuild --rebuild zfs-x.y.z-1.src.rpm

	This will produce two binary RPMs with correct 'requires'
	dependencies for your kernel.  One will contain all zfs modules
	and support utilities, the other is a devel package for compiling
	additional kernel modules which are dependent on the zfs.

	zfs-x.y.z-1_<kernel version>.x86_64.rpm
	zfs-devel-x.y.2-1_<kernel version>.x86_64.rpm

	* config/kernel.m4, config/Rules.am: Removed the build options
	-Wno-unused -Wno-missing -Wno-unused -Wno-parentheses and
	-Wno-unknown-pragmas.  All upstream warnings which were being
	suppressed by these options are now handled in the matching
	gcc-* topic branch.

	* zpios: Various zpios and test infrastructure improvements.

	* feature-commit-cb: New feature commit callbacks.

	* : Various bug fixes which are more clearly detailed in the
	git commit logs.  For a detailed summary of changes post version
	0.4.2, check out the 'top' topic branch and view the commit logs.

	git checkout top
	git log --no-merges -53

2009-02-05 Brian Behlendorf <behlendorf1@llnl.gov>

	* : Tag zfs-0.4.2

	* lib/libzfs/libzfs_util.c: Remove mknod() this is now handled by
	by the SPL with an upcall even without GPL-only symbols.

	* module/zfs/vdev_diskc: Updated linux vdev_disk interfaces to issue
	multiple bios if needed due to the maximum request size being smaller
	than the request size passed down from the spa.

	* scripts/zpool-config/lo-*: Add loopback based test configs.

2009-01-21 Brian Behlendorf <behlendorf1@llnl.gov>

	* : Tag zfs-0.4.1

	* : Rebased to ZFS b105 from OpenSolaris

	* : Restructured project and build system to more closely
	mirror the code organization used in OpenSolaris.  This
	allows us minimize the changes to upstream source needed,
	and allows concurrent user+kernel space builds of all components.

2008-11-19 Brian Behlendorf <behlendorf1@llnl.gov>

	* : Tag zfs-0.4.0

	* : ZFS project migrated from Subversion which leveraged a 
	quilt based patch stack to Git and a TopGit managed patch
	stack.  The new method treats all patches as Git branches
	which can be more easily shared for distributed development.
	Consult the top level GIT file for detailed information on
	how to properly develop for this package using Git+TopGit.

2008-11-12 Brian Behlendorf <behlendorf1@llnl.gov>

	* : Tag zfs-0.3.4

	* zfs-07-create-dev-zfs.patch:
	Ricardo M. Correia <Ricardo.M.Correia@sun.com>
	- Make libzfs create /dev/zfs if it doesn't exist.

	* zfs-05-check-zvol-size.patch:
	Ricardo M. Correia <Ricardo.M.Correia@sun.com>
	- Properly check zvol size under Linux.

	* zfs-04-no-openat-fdopendir.patch:
	Ricardo M. Correia <Ricardo.M.Correia@sun.com>
	- Do not use openat() and fdopendir() since they are not available
	  on older systems.

	* zfs-03-fix-bio-sync.patch:
	Ricardo M. Correia <Ricardo.M.Correia@sun.com>
	- Fix memory corruption in RHEL4 due to synchronous IO becoming
	  asynchronous.

2008-11-06 Brian Behlendorf <behlendorf1@llnl.gov>

	* zfs-02-zpios-fix-stuck-thread-memleak.patch:
	Ricardo M. Correia <Ricardo.M.Correia@sun.com>
	- Fix stuck threads and memory leaks when errors occur while writing.

	* zfs-01-zpios-arg-corruption.patch:
	Ricardo M. Correia <Ricardo.M.Correia@sun.com>
	- Fix zpios cmd line argument corruption problem.

	* zfs-00-minor-fixes.patch: 
	Ricardo M. Correia <Ricardo.M.Correia@sun.com>
	- Minor build system improvements
	- Minor script improvements
	- Create a full copy and not a link tree with quilt
	- ZPIOS_MAJOR changed from 231 to 232
	- BIO_RW_BARRIER flag removed from IO request

2008-06-30 Brian Behlendorf <behlendorf1@llnl.gov>

	* : Tag zfs-0.3.3

	* : Minor script updates and tweaks to be compatible with
	the latest version of the SPL.

2008-06-13 Brian Behlendorf <behlendorf1@llnl.gov>

	* vdev_disk.diff: Replace vdev_disk implementation which was
	based on the kmalloc'ed logical address space with a version
	which works with vmalloc'ed memory in the virtual address space.
	This was done to support the new SPL slab implementation which
	is based on virtual addresses to avoid the need for contigeously
	allocated memory.

2008-06-05 Brian Behlendorf <behlendorf1@llnl.gov>

	* arc-vm-integration.diff: Reduce maximum default arc memory 
	usage to 1/4 of total system memory.  Because all the bulk data
	is still allocated on the slab memory fragmentation is a serious
	concern.  To address this in the short term we simply need to
	leave lots of free memory.

	* fix-stack.diff: First step towards reducing stack usage so
	we can run the full ZFS stack using a stock kernel.

2008-06-04 Brian Behlendorf <behlendorf1@llnl.gov>

	* : Tag zfs-0.3.2

	* : Extensive improvements to the build system to detect kernel
	API changes so we can flexibly build with a wider range of kernel
	versions.  The code has now been testing with the 2.6.18-32chaos
	and 2.6.25.3-18.fc9 kernels, however we should also be compatible
	with other kernels in the range of 2.6.18-2.6.25.  The only
	remaining issue preventing us from running with a stock 
	kernel is ZFS stack usage.

2008-05-21 Brian Behlendorf <behlendorf1@llnl.gov>

	* : Tag zfs-0.3.1

	* : License headers including URCL added for release.

2008-05-21 Brian Behlendorf <behlendorf1@llnl.gov>

	* : Tag zfs-0.3.0

	* configure.ac: Improved autotools support and configurable debug.

2008-05-15 Brian Behlendorf <behlendorf1@llnl.gov>

	* : Updating original ZFS sources to build 89 which
	includes the new write throttling changes plus support
	for using ZFS as your root device.  Neither of which
	will work exactly right without some more work but this
	gets us much closers to the latest source.
	

2008-02-28 Brian Behlendorf <behlendorf1@llnl.gov>

	* : First attempt based on SPL module and zfs-lustre sources