[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <160380659566.3467511.15495463187114465303.stgit@warthog.procyon.org.uk>
Date:   Tue, 27 Oct 2020 13:49:55 +0000
From:   David Howells <dhowells@...hat.com>
To:     linux-afs@...ts.infradead.org
Cc:     Dan Carpenter <dan.carpenter@...cle.com>,
        Christoph Hellwig <hch@....de>,
        "Matthew Wilcox (Oracle)" <willy@...radead.org>,
        Colin Ian King <colin.king@...onical.com>,
        Nick Piggin <npiggin@...in.com>, dhowells@...hat.com,
        linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH 00/10] AFS fixes
Here's a set of fixes for AFS:
 (1) Fix copy_file_range() to an afs file now returning EINVAL if the
     splice_write file op isn't supplied.
 (2) Fix a deref-before-check in afs_unuse_cell().
 (3) Fix a use-after-free in afs_xattr_get_acl().
 (4) Fix afs to not try to clear PG_writeback when laundering a page.
 (5) Fix afs to take a ref on a page that it sets PG_private on and to drop
     that ref when clearing PG_private.
 (6) Fix a page leak if write_begin() fails.
 (7) Fix afs_write_begin() to not alter the dirty region info stored in
     page->private, but rather do this in afs_write_end() instead when we
     know what we actually changed.
 (8) Fix afs_invalidatepage() to alter the dirty region info on a page when
     partial page invalidation occurs so that we don't inadvertantly
     include a span of zeros that will get written back if a page gets
     laundered due to a remote 3rd-party induced invalidation.
     We mustn't, however, reduce the dirty region if the page has been seen
     to be mapped (ie. we got called through the page_mkwrite vector) as
     the page might still be mapped and we might lose data if the file is
     extended again.
To aid (8), two additional patches are included:
 (*) Wrap the manipulations of the dirty region info stored in
     page->private into helper functions.
 (*) Alter the encoding of the dirty region so that the region bounds can
     be stored with one fewer bit, making a bit available for the
     indication of mappedness.
The patches can be found here:
	https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/log/?h=afs-fixes
David
---
Dan Carpenter (1):
      afs: Fix a use after free in afs_xattr_get_acl()
David Howells (9):
      afs: Fix copy_file_range()
      afs: Fix tracing deref-before-check
      afs: Fix afs_launder_page to not clear PG_writeback
      afs: Fix to take ref on page when PG_private is set
      afs: Fix page leak on afs_write_begin() failure
      afs: Fix where page->private is set during write
      afs: Wrap page->private manipulations in inline functions
      afs: Alter dirty range encoding in page->private
      afs: Fix afs_invalidatepage to adjust the dirty region
 fs/afs/cell.c              |  3 +-
 fs/afs/dir.c               |  3 ++
 fs/afs/dir_edit.c          |  1 +
 fs/afs/file.c              | 74 ++++++++++++++++++++++++-----
 fs/afs/internal.h          | 41 ++++++++++++++++
 fs/afs/write.c             | 95 ++++++++++++++++++++++----------------
 fs/afs/xattr.c             |  2 +-
 include/linux/page-flags.h |  1 +
 include/trace/events/afs.h | 20 ++------
 9 files changed, 171 insertions(+), 69 deletions(-)
Powered by blists - more mailing lists