Re: [patch] fix truncate inode time modification breakage

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

 



On Tue, Jun 01, 2010 at 11:39:23PM +1000, Nick Piggin wrote:
> It appears that I've broken inode time modifications on tmpfs/ext2.
> While ftruncate always updates these attributes, truncate must not
> unless size is changed. I hadn't actually understood that until
> Christoph told me.
> 
> Confusion is increased because other filesystems get this wrong.
> Those without ->setattr or ->truncate get it wrong by default.
> Others appear to have problems too.
> 
> I haven't gone through many yet, but is there any reason not to
> just do it in the vfs?

Doing it in the VFS is fine with me, we still have the the file
pointer in struct iatta to indicate a ftruncate / open O_TRUNC
if any filesystem really cares.  But I think you need to audit
all instances if they care about this.  And while you're at it
also remove the code handling this and the comments about it in
XFS.

> -	if (S_ISREG(inode->i_mode) && (attr->ia_valid & ATTR_SIZE)) {
> -		loff_t newsize = attr->ia_size;
> +	if (S_ISREG(inode->i_mode) && (attr->ia_valid & ATTR_SIZE) &&
> +						newsize != inode->i_size) {

Btw, the S_ISREG is superflous - we only ever set ATTR_SIZE for
regular files from the upper layer code.

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


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux