Date: Thu, 29 Dec 2005 12:41:40 +0900 From: Masanori OZAWA <ozawa@ongs.co.jp> To: freebsd-hackers@freebsd.org, freebsd-current@freebsd.org Cc: daichi@freebsd.org Subject: [unionfs][patch] improvements of the unionfs - Problem Report, kern/91010 Message-ID: <43B35AF4.5040408@ongs.co.jp>
next in thread | raw e-mail | index | archive | help
I gave a send-pr around the improvement of the unionfs. Please look at the follow url in specific for interested poeple whom it may committer or official people who can merge my patches. http://www.freebsd.org/cgi/query-pr.cgi?pr=91010 The established unionfs implementaion is weak around thier functions. Some systems that use unionfs like FreeSBIE need more rich function. My improvements give the more rich features to get it on. I want to give a suggestion to the maintainer of unionfs to merge my patch :) New features of my improvements are follow: ---- mount_unionfs: - added "[-c <old|fullcopy|useful>]" Set copy strategy for copying from lower layer to upper layer around files and directories. The strategies are "old", "fullcopy" and "useful" setting by root only. old: the same strategy as established unionfs. (default) fullcopy: upper layer gets full copy of lower layer status. useful: user can get access controlling by -m, -M, -u and -g. only owner's access permission get chagne when target owner is the same as original owner. - added "[-m permission]" Set access permission for file with "useful" strategy only. mount target directory gives default permission. permission given by "-M" gives default permission when "-m" is not given. - added "[-M permission]" Set access permission for directory with "useful" strategy only. mount target directory gives default permission. permission given by "-m" gives default permission when "-M" is not given. - added "[-u owner]" Set owner with "useful" strategy only. mount target directory gives default owner. - added "[-g group]" Set group with "useful" strategy only. mount target directory gives default group. - deleted "[-r]" "-r" option is not needed because mount_nullfs has instead ---- I got some load test, and looks like it works fine. The simple test is to use some commads like cp, mv, mkdir, chmod and ls. The heavy test is like as follow: # mount_unionfs -c useful /usr/ufs1 /usr/obj # mount_unionfs /usr/ufs2 /usr/src # cd /usr/src # make buildkernel # make clean # make -j2 buildworld # make clean # umount /usr/obj # cd # umount /usr/src <Notice> Wojciech A. Koszek <dunstan@freebsd.czest.pl> has pointed out, my improvements of unionfs can not get the same way to use with nullfs. The problem depends on the locking mechanism of the FreeBSD VFS. Unionfs, of course, should control the two fs locks both of the upper layer and the lower layer. It use ``struct vnode *vp; vp->v_vnlock = foobar;'' as lock mechanism. And nullfs use the same one. That is a problem. I think that nullfs should get change of the implementaion from the complexity of the implementation rather than to get change of unionf's implementation. However, as a first step of the unionfs-improvements, to merge my patches is very meaningful I think. Finally, so sorry my English is not enough to get communication with you. My boss, daichi@freebsd.org gives us the help of communication (as a matter of fact he wrote most of this mail ;) . Please gives daichi@freebsd.org as CC: for my mail. Thanks. :) -- ONGS Inc. Masanori OZAWA (ozawa@ongs.co.jp) WWW: http://www.ongs.co.jp/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43B35AF4.5040408>