diff mbox series

[1/1] exfat: Add fiemap support

Message ID 20210720093748.180714-2-preichl@redhat.com (mailing list archive)
State New, archived
Headers show
Series exfat: Add fiemap support | expand

Commit Message

Pavel Reichl July 20, 2021, 9:37 a.m. UTC
Signed-off-by: Pavel Reichl <preichl@redhat.com>
---
 fs/exfat/exfat_fs.h | 3 +++
 fs/exfat/file.c     | 1 +
 fs/exfat/inode.c    | 8 ++++++++
 3 files changed, 12 insertions(+)

Comments

Christoph Hellwig July 20, 2021, 10:44 a.m. UTC | #1
Please don't add new callers of generic_block_fiemap, as that function
should go away ASAP.  Please use iomap_fiemap instead.
diff mbox series

Patch

diff --git a/fs/exfat/exfat_fs.h b/fs/exfat/exfat_fs.h
index 1d6da61157c9..1c22aa7107d4 100644
--- a/fs/exfat/exfat_fs.h
+++ b/fs/exfat/exfat_fs.h
@@ -428,6 +428,9 @@  long exfat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg);
 long exfat_compat_ioctl(struct file *filp, unsigned int cmd,
 				unsigned long arg);
 
+extern int exfat_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
+	u64 start, u64 len);
+
 /* namei.c */
 extern const struct dentry_operations exfat_dentry_ops;
 extern const struct dentry_operations exfat_utf8_dentry_ops;
diff --git a/fs/exfat/file.c b/fs/exfat/file.c
index 6af0191b648f..7823dcbca96e 100644
--- a/fs/exfat/file.c
+++ b/fs/exfat/file.c
@@ -432,4 +432,5 @@  const struct file_operations exfat_file_operations = {
 const struct inode_operations exfat_file_inode_operations = {
 	.setattr     = exfat_setattr,
 	.getattr     = exfat_getattr,
+	.fiemap	     = exfat_fiemap,
 };
diff --git a/fs/exfat/inode.c b/fs/exfat/inode.c
index 1803ef3220fd..c6f95d68badc 100644
--- a/fs/exfat/inode.c
+++ b/fs/exfat/inode.c
@@ -13,6 +13,7 @@ 
 #include <linux/uio.h>
 #include <linux/random.h>
 #include <linux/iversion.h>
+#include <linux/fiemap.h>
 
 #include "exfat_raw.h"
 #include "exfat_fs.h"
@@ -358,6 +359,13 @@  static int exfat_get_block(struct inode *inode, sector_t iblock,
 	return err;
 }
 
+int exfat_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
+		u64 start, u64 len)
+{
+	return generic_block_fiemap(inode, fieinfo, start, len,
+			exfat_get_block);
+}
+
 static int exfat_readpage(struct file *file, struct page *page)
 {
 	return mpage_readpage(page, exfat_get_block);