Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 25 Feb 2023 03:27:55 +0000 (19:27 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 25 Feb 2023 03:27:55 +0000 (19:27 -0800)
Pull misc vfs updates from Al Viro:
 "Assorted stuff that didn't fit anywhere else"

* 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  nsfs: repair kernel-doc for ns_match()
  nsfs: add compat ioctl handler
  fs/cramfs: Convert kmap() to kmap_local_data()

fs/cramfs/inode.c
fs/nsfs.c

index 45a65c400bd0e6e8c59e636e1f4b631434f3e254..e3d168911dbe12ea242d5ee66c5ddc54a9aa3e55 100644 (file)
@@ -238,8 +238,7 @@ static void *cramfs_blkdev_read(struct super_block *sb, unsigned int offset,
                struct page *page = pages[i];
 
                if (page) {
-                       memcpy(data, kmap(page), PAGE_SIZE);
-                       kunmap(page);
+                       memcpy_from_page(data, page, 0, PAGE_SIZE);
                        put_page(page);
                } else
                        memset(data, 0, PAGE_SIZE);
@@ -815,7 +814,7 @@ static int cramfs_read_folio(struct file *file, struct folio *folio)
 
        maxblock = (inode->i_size + PAGE_SIZE - 1) >> PAGE_SHIFT;
        bytes_filled = 0;
-       pgdata = kmap(page);
+       pgdata = kmap_local_page(page);
 
        if (page->index < maxblock) {
                struct super_block *sb = inode->i_sb;
@@ -903,13 +902,13 @@ static int cramfs_read_folio(struct file *file, struct folio *folio)
 
        memset(pgdata + bytes_filled, 0, PAGE_SIZE - bytes_filled);
        flush_dcache_page(page);
-       kunmap(page);
+       kunmap_local(pgdata);
        SetPageUptodate(page);
        unlock_page(page);
        return 0;
 
 err:
-       kunmap(page);
+       kunmap_local(pgdata);
        ClearPageUptodate(page);
        SetPageError(page);
        unlock_page(page);
index 3506f6074288a776619a6efc290330db3a5cc36a..f8df60b3b901a37d401e7df24afdc4b56f59fb27 100644 (file)
--- a/fs/nsfs.c
+++ b/fs/nsfs.c
@@ -21,6 +21,7 @@ static long ns_ioctl(struct file *filp, unsigned int ioctl,
 static const struct file_operations ns_file_operations = {
        .llseek         = no_llseek,
        .unlocked_ioctl = ns_ioctl,
+       .compat_ioctl   = compat_ptr_ioctl,
 };
 
 static char *ns_dname(struct dentry *dentry, char *buffer, int buflen)
@@ -254,7 +255,7 @@ out_invalid:
 
 /**
  * ns_match() - Returns true if current namespace matches dev/ino provided.
- * @ns_common: current ns
+ * @ns: current namespace
  * @dev: dev_t from nsfs that will be matched against current nsfs
  * @ino: ino_t from nsfs that will be matched against current nsfs
  *