afs: Fix setting of mtime when creating a file/dir/symlink
[ Upstream commit a27648c742104a833a01c54becc24429898d85bf ] kafs incorrectly passes a zero mtime (ie. 1st Jan 1970) to the server when creating a file, dir or symlink because the mtime recorded in the afs_operation struct gets passed to the server by the marshalling routines, but the afs_mkdir(), afs_create() and afs_symlink() functions don't set it. This gets masked if a file or directory is subsequently modified. Fix this by filling in op->mtime before calling the create op. Fixes: e49c7b2f6de7 ("afs: Build an abstraction around an "operation" concept") Signed-off-by: David Howells <dhowells@redhat.com> Reviewed-by: Jeffrey Altman <jaltman@auristor.com> Reviewed-by: Marc Dionne <marc.dionne@auristor.com> cc: linux-afs@lists.infradead.org cc: linux-fsdevel@vger.kernel.org Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
8ef72e7830
commit
7b0c76354a
@ -1394,6 +1394,7 @@ static int afs_mkdir(struct user_namespace *mnt_userns, struct inode *dir,
|
||||
op->dentry = dentry;
|
||||
op->create.mode = S_IFDIR | mode;
|
||||
op->create.reason = afs_edit_dir_for_mkdir;
|
||||
op->mtime = current_time(dir);
|
||||
op->ops = &afs_mkdir_operation;
|
||||
return afs_do_sync_operation(op);
|
||||
}
|
||||
@ -1697,6 +1698,7 @@ static int afs_create(struct user_namespace *mnt_userns, struct inode *dir,
|
||||
op->dentry = dentry;
|
||||
op->create.mode = S_IFREG | mode;
|
||||
op->create.reason = afs_edit_dir_for_create;
|
||||
op->mtime = current_time(dir);
|
||||
op->ops = &afs_create_operation;
|
||||
return afs_do_sync_operation(op);
|
||||
|
||||
@ -1832,6 +1834,7 @@ static int afs_symlink(struct user_namespace *mnt_userns, struct inode *dir,
|
||||
op->ops = &afs_symlink_operation;
|
||||
op->create.reason = afs_edit_dir_for_symlink;
|
||||
op->create.symlink = content;
|
||||
op->mtime = current_time(dir);
|
||||
return afs_do_sync_operation(op);
|
||||
|
||||
error:
|
||||
|
Loading…
x
Reference in New Issue
Block a user