Skip to contentSkip to conversation

Patch "afs: Flush outstanding writes when an fd is closed" has been added to the 3.18-stable tree

PATCH [email protected] 1 participant 1 message Dec 18, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

afs: Flush outstanding writes when an fd is closed

to the 3.18-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
afs-flush-outstanding-writes-when-an-fd-is-closed.patch
and it can be found in the queue-3.18 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From foo@baz Mon Dec 18 15:03:25 CET 2017

From: David Howells <[email protected]>
Date: Thu, 16 Mar 2017 16:27:45 +0000
Subject: afs: Flush outstanding writes when an fd is closed

From: David Howells <[email protected]>

[ Upstream commit 58fed94dfb17e89556b5705f20f90e5b2971b6a1 ]

Flush outstanding writes in afs when an fd is closed. This is what NFS and CIFS do.

---
 fs/afs/file.c     |    1 +
 fs/afs/internal.h |    1 +
 fs/afs/write.c    |   14 ++++++++++++++
 3 files changed, 16 insertions(+)
fs/afs/file.c +1 -0
@@ -29,6 +29,7 @@ static int afs_readpages(struct file *fi
 
 const struct file_operations afs_file_operations = {
 	.open		= afs_open,
+	.flush		= afs_flush,
 	.release	= afs_release,
 	.llseek		= generic_file_llseek,
 	.read		= new_sync_read,
fs/afs/internal.h +1 -0
@@ -749,6 +749,7 @@ extern int afs_writepages(struct address
 extern void afs_pages_written_back(struct afs_vnode *, struct afs_call *);
 extern ssize_t afs_file_write(struct kiocb *, struct iov_iter *);
 extern int afs_writeback_all(struct afs_vnode *);
+extern int afs_flush(struct file *, fl_owner_t);
 extern int afs_fsync(struct file *, loff_t, loff_t, int);
 
 
fs/afs/write.c +14 -0
@@ -743,6 +743,20 @@ out:
 }
 
 /*
+ * Flush out all outstanding writes on a file opened for writing when it is
+ * closed.
+ */
+int afs_flush(struct file *file, fl_owner_t id)
+{
+	_enter("");
+
+	if ((file->f_mode & FMODE_WRITE) == 0)
+		return 0;
+
+	return vfs_fsync(file, 0);
+}
+
+/*
  * notification that a previously read-only page is about to become writable
  * - if it returns an error, the caller will deliver a bus error signal
  */

Patches currently in stable-queue which might be from [email protected] are

queue-3.18/afs-flush-outstanding-writes-when-an-fd-is-closed.patch queue-3.18/afs-fix-the-maths-in-afs_fs_store_data.patch queue-3.18/keys-don-t-permit-request_key-to-construct-a-new-keyring.patch queue-3.18/afs-populate-group-id-from-vnode-status.patch queue-3.18/afs-adjust-mode-bits-processing.patch queue-3.18/afs-fix-page-leak-in-afs_write_begin.patch queue-3.18/afs-fix-missing-put_page.patch queue-3.18/afs-populate-and-use-client-modification-time.patch queue-3.18/afs-fix-afs_kill_pages.patch queue-3.18/don-t-leak-a-key-reference-if-request_key-tries-to-use-a-revoked-keyring.patch