All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] orangefs: clean up truncate ctime and mtime setting
@ 2016-04-04 20:26 Martin Brandenburg
  2016-04-04 20:26 ` [PATCH 2/3] orangefs: strncpy -> strlcpy Martin Brandenburg
  2016-04-04 20:26 ` [PATCH 3/3] orangefs: remove unused variable Martin Brandenburg
  0 siblings, 2 replies; 9+ messages in thread
From: Martin Brandenburg @ 2016-04-04 20:26 UTC (permalink / raw)
  To: hubcap; +Cc: linux-kernel, linux-fsdevel, Martin Brandenburg

From: Martin Brandenburg <martin@omnibond.com>

The ctime and mtime are always updated on a successful ftruncate and
only updated on a successful truncate where the size changed.

We handle the ``if the size changed'' bit.

This matches FUSE's behavior.

Signed-off-by: Martin Brandenburg <martin@omnibond.com>
---
 fs/orangefs/inode.c | 16 +---------------
 1 file changed, 1 insertion(+), 15 deletions(-)

diff --git a/fs/orangefs/inode.c b/fs/orangefs/inode.c
index 2382e26..975a796 100644
--- a/fs/orangefs/inode.c
+++ b/fs/orangefs/inode.c
@@ -204,22 +204,8 @@ static int orangefs_setattr_size(struct inode *inode, struct iattr *iattr)
 	if (ret != 0)
 		return ret;
 
-	/*
-	 * Only change the c/mtime if we are changing the size or we are
-	 * explicitly asked to change it.  This handles the semantic difference
-	 * between truncate() and ftruncate() as implemented in the VFS.
-	 *
-	 * The regular truncate() case without ATTR_CTIME and ATTR_MTIME is a
-	 * special case where we need to update the times despite not having
-	 * these flags set.  For all other operations the VFS set these flags
-	 * explicitly if it wants a timestamp update.
-	 */
-	if (orig_size != i_size_read(inode) &&
-	    !(iattr->ia_valid & (ATTR_CTIME | ATTR_MTIME))) {
-		iattr->ia_ctime = iattr->ia_mtime =
-			current_fs_time(inode->i_sb);
+	if (orig_size != i_size_read(inode))
 		iattr->ia_valid |= ATTR_CTIME | ATTR_MTIME;
-	}
 
 	return ret;
 }
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-04-08 17:34 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-04 20:26 [PATCH 1/3] orangefs: clean up truncate ctime and mtime setting Martin Brandenburg
2016-04-04 20:26 ` [PATCH 2/3] orangefs: strncpy -> strlcpy Martin Brandenburg
2016-04-07 18:39   ` Andy Shevchenko
2016-04-07 19:43     ` Mike Marshall
2016-04-08 15:34       ` martin
2016-04-08 16:02         ` Andy Shevchenko
2016-04-08 17:16           ` martin
2016-04-08 17:33             ` [PATCH] orangefs: strncpy -> strscpy Martin Brandenburg
2016-04-04 20:26 ` [PATCH 3/3] orangefs: remove unused variable Martin Brandenburg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.