On Wednesday 13 December 2006 16:07, Attila Fülöp wrote:
> Folks,
>
> just to dropping into this discussion.
>
> Kern Sibbald wrote:
> > On Wednesday 13 December 2006 08:49, Oliver Lehmann wrote:
> > a> Kern Sibbald writes:
> >>>> patch-src-findlib-attribs.c
> >>>> when restoring a symlink, use lchflags to restore the file flags
> >>>> defined for the symlink ("new feature")
>
> This is right, but only part of a bigger problem. FreeBSD, as opposed to
> other OSes allows symlinks to have own permissions ACL etc and offers
> appropriate syscalls. Specifically this are lchmod, lutimes, lchflags
> acs_set/get_link_np.
>
> I have written a patch witch addresses this issue. So this patch will
> interfere with my changes. I would prefer not to have above mentioned
> "new feature" in the CVS since this will surely give me conflicts on
> next "cvs update".
>
> I'm in the process of writing the regression scripts for my patches.
> Since my patch addresses other stuff (mostly ACL code, and some minor
> fixes) and the writing of regression scripts isn't that well documented
> this may take some time. Nonetheless I hope to have the testing done
> until next Monday.
>
> I will look into the other new patches this evening to see if they
> interfere with my changes and report back tomorrow.
I would be very happy if you will provide a patch. However, there is almost
zero chance that it will go in before 1.40.0 is released. The only fixes
that I am accepting at the moment are important bug fixes that do not disrupt
the code too much. I suggest you simply pull down the new file after I have
integrated the patch and adjust your code to work with it. This is,
unfortunately, something that developers must do quite often.
Concerning all these differences on FreeBSD: if the changes needed to make
things work correctly on FreeBSD are extensive and require a bit of
#ifdefing, we are going to have to re-think how we do it. The code is
already a bit messy and adding more non-standard system dependent code will
push it over my tolerance of messyness. As a consequence, we will need to
look at ways of making it cleaner --- e.g. moving some of the code, possibly
the system dependent code into subroutines ...
>
> Attila
>
> >>>> when restoring a hardlink, don't call chmod, chown, utime because it
is
> >>>> a hardlink and don't have such attributes (as far as I know, if
> > someone
> >>>> with more FS-foo can step up and confirm this?). Changing this
> >>>> attributes will change the sourcefiles attributes which is probably
not
> >>>> what is wanted here anyway....
> >>> I'll have to think about this a bit more. However, I don't think it is
> >>> correct to skip setting the attributes. To understand hardlinks, the
> > first
> >>> thing is to realize that the name is slightly misleading. A hard link
is
> > not
> >>> really a link. The data for the two files the attributes are one and
the
> >>> same. The situation is very different from a softlink where there is a
> >>> separate directory entry that "points" to an existing file.
> >>>
> >>> Thus to properly restore a hardlink you must also reset the attributes
or
> > you
> >>> could potentially end up with incorrect attributes (owner, modes, ...).
> >> Ok, but from my understanding setting attributes on a hardlink changes
the
> >> attributes of the inode the hardlink is pointing to, like for "normal"
files
> >> which are technically hardlinks too.
> >
> > There is no such think as a hardlink. There is a hardlink operation. It
is
> > very different from a softlink, and if you think about them the same way,
you
> > will never get it right. Two files that are hardlinked (really poor
> > terminology) *are* one and the same file. The two files share the same
> > inode, so there is no "hardlink" with separate attributes that points to
an
> > inode (as is the case for a softlink, which is a pointer). For
hardlinked
> > files, there is only one set of data and one set of attributes.
> >
> >> So changing attributes for n "objects"
> >> pointing to the same inode is like changing the attributes n times for
the
> >> same object or is this wrong?
> >
> > There are n filenames that share the same data and attributes true, and if
you
> > are doing a full restore, it is possible Bacula will set those attributes
to
> > the same thing n times since each of Bacula's n representations of the
> > hardlinked files contains the attributes (there is only one copy of the
data
> > though). Ideally, Bacula would set the attributes only once when it
restores
> > the data, but I would have to look at the code (which I don't have the
time
> > to do) to remember exactly what Bacula does.
> >
> >> If you think attributes for hardlinks have to be restored as well, the
fix
> >> for src/findlib/attribs.c has to be redone. I can do so but I still
> >> think.... ;)
> >
> > Ideally as I mentioned above, the attributes are only kept with the data
and
> > thus are only set one time. Then when a second filename is found it would
> > simply be hardlinked to the first file (i.e. become one and the same) and
it
> > would not then be necessary to re-set the attributes. If this is what
your
> > patch does, then it is probably OK. If not, we need to re-think it. In
any
> > case, this could be a rather fundamental change to how the low level part
of
> > Bacula works, and I am a bit worried about trying to include it in version
> > 1.40.0.
> >
> > Regards,
> >
> > Kern
> >
> > -------------------------------------------------------------------------
> > Take Surveys. Earn Cash. Influence the Future of IT
> > Join SourceForge.net's Techsay panel and you'll get the chance to share
your
> > opinions on IT & business topics through brief surveys - and earn cash
> > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> > _______________________________________________
> > Bacula-devel mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/bacula-devel
> >
> >
>
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Bacula-devel mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/bacula-devel
>
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Bacula-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bacula-users