Date: Wed, 7 Feb 1996 03:18:02 -0800 From: Julian Elischer <julian@ref.tfs.com> To: hackers@freebsd.org Subject: TERRY patches.. Message-ID: <199602071118.DAA00521@ref.tfs.com>
next in thread | raw e-mail | index | archive | help
Terry: regarding your patches.. Your changes accidentally SPAMMed some bde patches.. I've sent you a reverse patch to apply to your tree to UNSPAM the changes having applied that patch.. here are comments. I like the namei/lookup addition of the EXCLUDE flag. Seems good to me.. the moving of some functionality from filesystems to common code is a good idea. The changes in vfs_init seem properly implimented, but I haven't looked at the full impact of what they mean yet in terms of how the structures are controlled etc... later The reworking of mount() is ingenious, but I think we should not impliment much of it. I find it is harder to follow the nested if else constructions than it is to see return EINVAL; or even error = EINVAL; goto leave; We also lose the ability to get easy diffs from 4.4lite2 and NetBSD (who we may want to campare code with at times) I think we would gain more by leaving the existing code "As IS" and inserting 4-line comment groups every clause, explaining what's going on.. I think 'cosmetic reworks' should be avoided, as it tends to: 1/ make it harder to merge/compare code 2/ obfuscate the real nature of the change. Admittedly I do prefer mp->mnt_flag |= uap->flags & (MNT_NOSUID | ! MNT_NOEXEC | ! MNT_NODEV | ! MNT_SYNCHRONOUS | ! MNT_UNION | ! MNT_ASYNC | ! MNT_FORCE); to ! mp->mnt_flag |= uap->flags & (MNT_NOSUID | MNT_NOEXEC | MNT_NODEV | ! MNT_SYNCHRONOUS | MNT_UNION | MNT_ASYNC | MNT_FORCE); The changes to vfs_syscalls seem to be largely cosmetic or changes to lead to single-exit-point structuring of functions. some of them look good but.. In some cases it actually complicates the code to come out through a single exit point: wittness: /* only set *retval if loop above completed successfully*/ you needed extra code to use the break; Once again, is it worth breaking 'compatibility' to get the meger benefites.. Whether the new format of the code is more maintainable is open to debate.. I might find it harder to maintain because I could get the 'else' clauses wrong and also sometimes it requires some extra work as it assignes a value to the variable 'error' rather than just returning it as a value, not to mention just returning.. (I seem to remember that sometimes the C compiler will notice that you are 'jumping' to a return, and will do a return(value) anyhow..) around line..--- 813,829 ---- a whole NDINIT(&nd, CREATE, LOCKPARENT, UIO_USERSPACE, uap->path, p); ! error = namei(&nd); seems to have dissappeared.. is that right? Is that the same namei moved down 23 lines or so? That at least uses the EXCLUDE flag and is more than a cosmetic change.... It's a pitty you couldn't submit the cosmetic changes as a separate packege because they Hide the extent of REAL changes.. It's make it a much easier job to go over the actual functional changes.. I wanted the namebuffer freeing to be moved out as you have done. it seemed to be in the wrong place when I did devfs.. but about 60% of this patch is cosmetic.. (single-exit-point stuff) I f I could get the real changes separated from this stuff it's be a lot easier. the nfs_nameifree() changes look ok, but I really need to spend more time.. why is it different to nameifree() julian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199602071118.DAA00521>