Since my current code is already pretty stable, I am now releasing the patches that I had to apply to the original sources (relevant to OpenSolaris).
The current "linux.patch" file weights at about 63KB, this would reduce it to roughly 50% its size (the rest is mostly just commenting code for unimplemented features or some minor Linux-specific changes). So, here are the patches: ----------------------------------------------------------------------- http://www.wizy.org/files/zfs-patches/01-printf-casts.patch gcc warns about printf() argument type mismatches. I had 2 choices - either use a -W.. flag to disable warnings or typecast the arguments. I opted for typecasting the arguments. I think its safer since I can't guarantee that there aren't size mismatches between some Linux and Solaris types (what would happen if there was a "%llu" format string and it was provided a 32-bit variable?). ----------------------------------------------------------------------- http://www.wizy.org/files/zfs-patches/02-no-trigraph.patch Remove 1 trigraph. Standard C99 has trigraphs and AFAIK there's no way to disable it in gcc when the -std=c99 flag is given. -Wno-trigraphs only disables the warning, if I'm not mistaken. ----------------------------------------------------------------------- http://www.wizy.org/files/zfs-patches/03-char-ambiguity.patch gcc complained about signed/unsigned char ambiguity. ----------------------------------------------------------------------- http://www.wizy.org/files/zfs-patches/04-unused-code.patch Unused/dead code. ----------------------------------------------------------------------- http://www.wizy.org/files/zfs-patches/05-boolean-argument.patch Better pointer convertion (removes gcc warning/error). ----------------------------------------------------------------------- http://www.wizy.org/files/zfs-patches/06-zpool-no-memory.patch The no_memory() function in zpool was conflicting with the no_memory() function in libzfs (currently I'm still statically compiling it). ----------------------------------------------------------------------- http://www.wizy.org/files/zfs-patches/07-ztest-child.patch POSIX waitpid() doesn't have the WEXITED flag. ----------------------------------------------------------------------- http://www.wizy.org/files/zfs-patches/08-int-pointers.patch Integer/pointer NULL mismatches... ----------------------------------------------------------------------- http://www.wizy.org/files/zfs-patches/09-missing-enums.patch You should have a good look at this one. I think this gcc warning is very helpful, so if some enums aren't really necessary, please add the "default: break" case. ----------------------------------------------------------------------- http://www.wizy.org/files/zfs-patches/10-macro-expansion.patch The first hunk was giving a warning in gcc. The second one was giving an error. ----------------------------------------------------------------------- http://www.wizy.org/files/zfs-patches/11-arc-userland-bug.patch This solves bug #6453172. ----------------------------------------------------------------------- http://www.wizy.org/files/zfs-patches/12-catch-timer-overflow.patch An assert that was helpful in debugging timer overflows. ----------------------------------------------------------------------- http://www.wizy.org/files/zfs-patches/13-check-error.patch Checks for errors in mutexes/condvars. ----------------------------------------------------------------------- http://www.wizy.org/files/zfs-patches/14-brace-syntax.patch Use the correct C99 syntax for nested structs. That's it :)
