rdiff-backup-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [rdiff-backup-users] os error 22 detecting file systemproperties on


From: Ben Escoto
Subject: Re: [rdiff-backup-users] os error 22 detecting file systemproperties on cygwin
Date: Sun, 8 Feb 2004 18:57:27 -0800

>>>>> "David Kempe" <address@hidden>
>>>>> wrote the following on Mon, 2 Feb 2004 09:40:40 +1100 (EST)

> Hi I have done some testing on restoring on win32.
> I applied the patch from 13.4 for fs_abilities.
> that seems to wrongly detect that hardlinks are OK.

Hmm, things look ok when I run it under linux to a fat filesystem:

-----------------------------------------------------------------
Detected abilities for destination (read/write) file system:
  Characters needing quoting                   '^a-z0-9_ -.'
  Ownership changing                           Off
  Hard linking                                 Off
  fsync() directories                          On
  Directory inc permissions                    Off
  Access control lists                         Off
  Extended attributes                          Off
  Mac OS X style resource forks                Off
  Mac OS X Finder information                  Off
-----------------------------------------------------------------

You may want to skim the following function and figure out why an
error isn't detected:

    def set_hardlinks(self, testdir):
        """Set self.hardlinks to true iff hard linked files can be made"""
        hl_source = testdir.append("hardlinked_file1")
        hl_dest = testdir.append("hardlinked_file2")
        hl_source.touch()
        try:
            hl_dest.hardlink(hl_source.path)
            if hl_source.getinode() != hl_dest.getinode():
                raise IOError(errno.EOPNOTSUPP, "Hard links don't compare")
        except (IOError, OSError), exc:
            if exc[0] in (errno.EOPNOTSUPP, errno.EPERM):
                log.Log("Warning: hard linking not supported by filesystem "
                        "at %s" % (self.root_rp.path,), 3)
                self.hardlinks = 0
            else: raise
        else: self.hardlinks = 1

I would have thought the hardlink() function would fail.  But if it
doesn't raise an error, maybe the inode of all files are reported as 0
or something, so they compare ok anyway.


-- 
Ben Escoto

Attachment: pgpbEOkp7lD6f.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]