Re: 2.6.20 ext3 rename() returns success but doesn't unlink the source

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

 



On Mar 24, 2007  01:18 +0200, Timo Sirainen wrote:
> On Fri, 2007-03-23 at 23:24 +0100, Guillaume Chazarain wrote:
> > Timo Sirainen a écrit :
> > 
> > > 	rename("/mnt/Maildir/.Trash/new/1174635781.P25986Q0M341350.hurina",
> > > 	       "/mnt/Maildir/.Trash/cur/1174635781.P25986Q0M341350.hurina:2,");
> > 
> > $ ls -li /mnt/Maildir/.Trash/new/1174635781.P25986Q0M341350.hurina /mnt/Maildir/.Trash/cur/1174635781.P25986Q0M341350.hurina:2,
> > 122481 -rw------- 2 1000 1000 3091 Mar 23 08:43 /mnt/Maildir/.Trash/cur/1174635781.P25986Q0M341350.hurina:2,
> > 122481 -rw------- 2 1000 1000 3091 Mar 23 08:43 /mnt/Maildir/.Trash/new/1174635781.P25986Q0M341350.hurina
> > 
> > All your files in the list are hard linked.
> > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=fs/namei.c;h=ee60cc4d3453209723d6f70982e7083d7cb39477;hb=HEAD#l2447
> > seems to handle your case as you see it:
> > if (old_dentry->d_inode == new_dentry->d_inode)
> > 	return 0;
> 
> Hmm. Oh. So this is this intentional? First I ever heard of it, and also
> goes against my logic. I'll go complain to man pages people then. This
> will make my error handling difficult..

Yes, it is a very counter-intuitive requirement in the POSIX spec.  The
GNU user tools do what is expected (unlink the source file).

Cheers, Andreas
--
Andreas Dilger
Principal Software Engineer
Cluster File Systems, Inc.

-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux