fs: introduce f_op->mmap_capabilities for nommu mmap support
[cascardo/linux.git] / fs / romfs / mmap-nommu.c
index ea06c75..7da9e21 100644 (file)
@@ -70,6 +70,15 @@ static int romfs_mmap(struct file *file, struct vm_area_struct *vma)
        return vma->vm_flags & (VM_SHARED | VM_MAYSHARE) ? 0 : -ENOSYS;
 }
 
+static unsigned romfs_mmap_capabilities(struct file *file)
+{
+       struct mtd_info *mtd = file_inode(file)->i_sb->s_mtd;
+
+       if (!mtd)
+               return NOMMU_MAP_COPY;
+       return mtd_mmap_capabilities(mtd);
+}
+
 const struct file_operations romfs_ro_fops = {
        .llseek                 = generic_file_llseek,
        .read                   = new_sync_read,
@@ -77,4 +86,5 @@ const struct file_operations romfs_ro_fops = {
        .splice_read            = generic_file_splice_read,
        .mmap                   = romfs_mmap,
        .get_unmapped_area      = romfs_get_unmapped_area,
+       .mmap_capabilities      = romfs_mmap_capabilities,
 };