mirror of
https://github.com/archlinux/aur.git
synced 2026-02-10 06:54:23 +01:00
Update patches for Refactored iomap_file_buffered_write, iomap_truncate_page, iomap_zero_range and iomap_page_mkwrite
Signed-off-by: shadichy <shadichy@blisslabs.org>
This commit is contained in:
parent
e40f35bcf0
commit
2fcd9e4776
6 changed files with 135 additions and 217 deletions
10
.SRCINFO
10
.SRCINFO
|
|
@ -1,6 +1,6 @@
|
|||
pkgbase = ntfsplus-dkms-git
|
||||
pkgdesc = A new NTFS driver for Linux promised to be better than NTFS3. These patches are directly taken from the maintainer's mailing list posts. Backported to 6.12.
|
||||
pkgver = 2025.10.24.r8.cdb5126be
|
||||
pkgver = 2025.10.24.r8.d43516bfa
|
||||
pkgrel = 1
|
||||
url = https://github.com/shadichy/ntfsplus-dkms
|
||||
arch = any
|
||||
|
|
@ -22,11 +22,11 @@ pkgbase = ntfsplus-dkms-git
|
|||
source = 90-udev-prefer-ntfsplus.rules
|
||||
sha256sums = SKIP
|
||||
sha256sums = 0eb24ef10bcfe46dbb56a8e8fe111b30e0969c0ff19b64b802939929773e616f
|
||||
sha256sums = 7a9305d0b4c874878d527ec7b8ed4dd61c8f973d3064eee80b6cc54375ef7515
|
||||
sha256sums = 105a4a70c4aae4cfa65a677139a5b737b902d5be27ea246fdc04149198360f18
|
||||
sha256sums = c56243dedd1cb4155b03ef824725658ef22e5227c39bac3551ffa8bae676d090
|
||||
sha256sums = 0f29c25ba2587b1a6ae4b10517455f204ab1b46a643abe6f0e94a470047d363e
|
||||
sha256sums = b1faf8a991a2188795cb048fbc9b5bd2e475b71d8cc879efcc1ab73c666ab4e3
|
||||
sha256sums = 3e89e804ce6babcb23c55698a7d1a9adea1872ed30c1a548bdd3b9b6167e66a5
|
||||
sha256sums = 1e97bca1a60febbe56eee2a30ff37f71ff6b2341fc6f1f89d3c920e896f20c32
|
||||
sha256sums = c16bbd7aefc178c8d6e6fda8761589145475dd6205266820a7a8d95d88dc9dec
|
||||
sha256sums = a8fbbc296fe31cad8d0dd6b17714d915b350bc0668b610345c9e33952cd6da9d
|
||||
sha256sums = dd75e9962be5563921101a7b5d2b852ae04cda9301ffb11c6ea574046f9f9474
|
||||
sha256sums = e217fa145f507b1e07e228e746528554f705f44fd5744f293b302b29df764b96
|
||||
sha256sums = ed9db8ec0caa09c977529c7ae89b808ee8c238331ec0fdf873525c115fcdfb7c
|
||||
|
|
|
|||
|
|
@ -1,14 +1,15 @@
|
|||
From 5ef66cd78fe6dda6bdcaa5c954f16b3b15a28bd1 Mon Sep 17 00:00:00 2001
|
||||
From b1383d4ca6c8a5c6ab82e577911c82463aaef61e Mon Sep 17 00:00:00 2001
|
||||
From: shadichy <shadichy@blisslabs.org>
|
||||
Date: Fri, 24 Oct 2025 01:48:52 +0700
|
||||
Date: Thu, 6 Nov 2025 16:39:19 +0700
|
||||
Subject: [PATCH 2/7] ntfsplus: Resolve iomap_* arguments (temporarily) for
|
||||
kernel older than 6.17
|
||||
|
||||
---
|
||||
fs/ntfsplus/aops.c | 9 +++++++++
|
||||
fs/ntfsplus/file.c | 35 ++++++++++++++++++++++++++++-------
|
||||
fs/ntfsplus/inode.c | 5 ++++-
|
||||
3 files changed, 41 insertions(+), 8 deletions(-)
|
||||
fs/ntfsplus/file.c | 14 +++++++-------
|
||||
fs/ntfsplus/inode.c | 2 +-
|
||||
fs/ntfsplus/inode.h | 13 +++++++++++++
|
||||
4 files changed, 30 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/fs/ntfsplus/aops.c b/fs/ntfsplus/aops.c
|
||||
index 50c804be3..b90b40aa8 100644
|
||||
|
|
@ -42,109 +43,107 @@ index 50c804be3..b90b40aa8 100644
|
|||
|
||||
static int ntfs_swap_activate(struct swap_info_struct *sis,
|
||||
diff --git a/fs/ntfsplus/file.c b/fs/ntfsplus/file.c
|
||||
index b4114017b..27c9e47d8 100644
|
||||
index b4114017b..e2e506a62 100644
|
||||
--- a/fs/ntfsplus/file.c
|
||||
+++ b/fs/ntfsplus/file.c
|
||||
@@ -293,7 +293,10 @@ int ntfs_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
|
||||
@@ -291,7 +291,7 @@ int ntfs_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
|
||||
/* Serialize against page faults */
|
||||
if (NInoNonResident(NTFS_I(vi)) &&
|
||||
attr->ia_size < old_size) {
|
||||
err = iomap_truncate_page(vi, attr->ia_size, NULL,
|
||||
- err = iomap_truncate_page(vi, attr->ia_size, NULL,
|
||||
+ err = __iomap_truncate_page(vi, attr->ia_size, NULL,
|
||||
&ntfs_read_iomap_ops,
|
||||
- &ntfs_iomap_folio_ops, NULL);
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0))
|
||||
+ &ntfs_iomap_folio_ops,
|
||||
+#endif
|
||||
+ NULL);
|
||||
&ntfs_iomap_folio_ops, NULL);
|
||||
if (err)
|
||||
goto out;
|
||||
}
|
||||
@@ -312,7 +315,10 @@ int ntfs_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
|
||||
@@ -310,7 +310,7 @@ int ntfs_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
|
||||
loff_t len = min_t(loff_t,
|
||||
round_up(old_size, PAGE_SIZE) - old_size,
|
||||
attr->ia_size - old_size);
|
||||
err = iomap_zero_range(vi, old_size, len,
|
||||
- err = iomap_zero_range(vi, old_size, len,
|
||||
+ err = __iomap_zero_range(vi, old_size, len,
|
||||
NULL, &ntfs_read_iomap_ops,
|
||||
- &ntfs_iomap_folio_ops, NULL);
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0))
|
||||
+ &ntfs_iomap_folio_ops,
|
||||
+#endif
|
||||
+ NULL);
|
||||
&ntfs_iomap_folio_ops, NULL);
|
||||
}
|
||||
}
|
||||
if (ia_valid == ATTR_SIZE)
|
||||
@@ -630,7 +636,10 @@ static ssize_t ntfs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
|
||||
@@ -629,7 +629,7 @@ static ssize_t ntfs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
|
||||
|
||||
offset = iocb->ki_pos;
|
||||
iocb->ki_flags &= ~IOCB_DIRECT;
|
||||
written = iomap_file_buffered_write(iocb, from,
|
||||
- &ntfs_write_iomap_ops, &ntfs_iomap_folio_ops,
|
||||
+ &ntfs_write_iomap_ops,
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0))
|
||||
+ &ntfs_iomap_folio_ops,
|
||||
+#endif
|
||||
- written = iomap_file_buffered_write(iocb, from,
|
||||
+ written = __iomap_file_buffered_write(iocb, from,
|
||||
&ntfs_write_iomap_ops, &ntfs_iomap_folio_ops,
|
||||
NULL);
|
||||
if (written < 0) {
|
||||
err = written;
|
||||
@@ -650,7 +659,10 @@ static ssize_t ntfs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
|
||||
@@ -649,7 +649,7 @@ static ssize_t ntfs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
|
||||
end >> PAGE_SHIFT);
|
||||
}
|
||||
} else {
|
||||
ret = iomap_file_buffered_write(iocb, from, &ntfs_write_iomap_ops,
|
||||
- &ntfs_iomap_folio_ops, NULL);
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0))
|
||||
+ &ntfs_iomap_folio_ops,
|
||||
+#endif
|
||||
+ NULL);
|
||||
- ret = iomap_file_buffered_write(iocb, from, &ntfs_write_iomap_ops,
|
||||
+ ret = __iomap_file_buffered_write(iocb, from, &ntfs_write_iomap_ops,
|
||||
&ntfs_iomap_folio_ops, NULL);
|
||||
}
|
||||
out:
|
||||
if (ret < 0 && ret != -EIOCBQUEUED) {
|
||||
@@ -937,7 +949,10 @@ static long ntfs_fallocate(struct file *file, int mode, loff_t offset, loff_t le
|
||||
@@ -935,7 +935,7 @@ static long ntfs_fallocate(struct file *file, int mode, loff_t offset, loff_t le
|
||||
|
||||
to = min_t(loff_t, (start_vcn + 1) << vol->cluster_size_bits,
|
||||
end_offset);
|
||||
err = iomap_zero_range(vi, offset, to - offset, NULL,
|
||||
- err = iomap_zero_range(vi, offset, to - offset, NULL,
|
||||
+ err = __iomap_zero_range(vi, offset, to - offset, NULL,
|
||||
&ntfs_read_iomap_ops,
|
||||
- &ntfs_iomap_folio_ops, NULL);
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0))
|
||||
+ &ntfs_iomap_folio_ops,
|
||||
+#endif
|
||||
+ NULL);
|
||||
&ntfs_iomap_folio_ops, NULL);
|
||||
if (err < 0 || (end_vcn - start_vcn) == 1)
|
||||
goto out;
|
||||
start_vcn++;
|
||||
@@ -948,7 +963,10 @@ static long ntfs_fallocate(struct file *file, int mode, loff_t offset, loff_t le
|
||||
@@ -946,7 +946,7 @@ static long ntfs_fallocate(struct file *file, int mode, loff_t offset, loff_t le
|
||||
loff_t from;
|
||||
|
||||
from = (end_vcn - 1) << vol->cluster_size_bits;
|
||||
err = iomap_zero_range(vi, from, end_offset - from, NULL,
|
||||
- err = iomap_zero_range(vi, from, end_offset - from, NULL,
|
||||
+ err = __iomap_zero_range(vi, from, end_offset - from, NULL,
|
||||
&ntfs_read_iomap_ops,
|
||||
- &ntfs_iomap_folio_ops, NULL);
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0))
|
||||
+ &ntfs_iomap_folio_ops,
|
||||
+#endif
|
||||
+ NULL);
|
||||
&ntfs_iomap_folio_ops, NULL);
|
||||
if (err < 0 || (end_vcn - start_vcn) == 1)
|
||||
goto out;
|
||||
end_vcn--;
|
||||
@@ -1000,7 +1018,10 @@ static long ntfs_fallocate(struct file *file, int mode, loff_t offset, loff_t le
|
||||
@@ -998,7 +998,7 @@ static long ntfs_fallocate(struct file *file, int mode, loff_t offset, loff_t le
|
||||
loff_t len = min_t(loff_t,
|
||||
round_up(old_size, PAGE_SIZE) - old_size,
|
||||
offset - old_size);
|
||||
err = iomap_zero_range(vi, old_size, len, NULL,
|
||||
- err = iomap_zero_range(vi, old_size, len, NULL,
|
||||
+ err = __iomap_zero_range(vi, old_size, len, NULL,
|
||||
&ntfs_read_iomap_ops,
|
||||
- &ntfs_iomap_folio_ops, NULL);
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0))
|
||||
+ &ntfs_iomap_folio_ops,
|
||||
+#endif
|
||||
+ NULL);
|
||||
&ntfs_iomap_folio_ops, NULL);
|
||||
}
|
||||
NInoSetFileNameDirty(ni);
|
||||
inode_set_mtime_to_ts(vi, inode_set_ctime_current(vi));
|
||||
diff --git a/fs/ntfsplus/inode.c b/fs/ntfsplus/inode.c
|
||||
index 28925d204..dd0ee4f86 100644
|
||||
index 28925d204..9bb036293 100644
|
||||
--- a/fs/ntfsplus/inode.c
|
||||
+++ b/fs/ntfsplus/inode.c
|
||||
@@ -2419,7 +2419,10 @@ int ntfs_extend_initialized_size(struct inode *vi, const loff_t offset,
|
||||
err = iomap_zero_range(vi, old_init_size,
|
||||
@@ -2416,7 +2416,7 @@ int ntfs_extend_initialized_size(struct inode *vi, const loff_t offset,
|
||||
return err;
|
||||
|
||||
if (!NInoCompressed(ni) && old_init_size < offset) {
|
||||
- err = iomap_zero_range(vi, old_init_size,
|
||||
+ err = __iomap_zero_range(vi, old_init_size,
|
||||
offset - old_init_size,
|
||||
NULL, &ntfs_read_iomap_ops,
|
||||
- &ntfs_iomap_folio_ops, NULL);
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0))
|
||||
+ &ntfs_iomap_folio_ops,
|
||||
&ntfs_iomap_folio_ops, NULL);
|
||||
diff --git a/fs/ntfsplus/inode.h b/fs/ntfsplus/inode.h
|
||||
index 0966f5916..4641ca066 100644
|
||||
--- a/fs/ntfsplus/inode.h
|
||||
+++ b/fs/ntfsplus/inode.h
|
||||
@@ -351,4 +351,17 @@ int ntfs_extend_initialized_size(struct inode *vi, const loff_t offset,
|
||||
const loff_t new_size);
|
||||
void ntfs_set_vfs_operations(struct inode *inode, mode_t mode, dev_t dev);
|
||||
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0)
|
||||
+#define __iomap_file_buffered_write iomap_file_buffered_write
|
||||
+#define __iomap_truncate_page iomap_truncate_page
|
||||
+#define __iomap_zero_range iomap_zero_range
|
||||
+#else
|
||||
+#define __iomap_file_buffered_write(iocb, from, ops, __write_ops, private) \
|
||||
+ iomap_file_buffered_write(iocb, from, ops, private)
|
||||
+#define __iomap_truncate_page(inode, pos, did_zero, ops, __write_ops, private) \
|
||||
+ iomap_truncate_page(inode, pos, did_zero, ops, private)
|
||||
+#define __iomap_zero_range(inode, pos, len, did_zero, ops, __write_ops, private) \
|
||||
+ iomap_zero_range(inode, pos, len, did_zero, ops, private)
|
||||
+#endif
|
||||
+ NULL);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
+
|
||||
#endif /* _LINUX_NTFS_INODE_H */
|
||||
--
|
||||
2.51.2
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
From e36a3db1808d1bc3fb5f0a6eba25c3483fc116c2 Mon Sep 17 00:00:00 2001
|
||||
From 3865635d63b5369380eaf823d8bf96adbc7ba1d8 Mon Sep 17 00:00:00 2001
|
||||
From: shadichy <shadichy@blisslabs.org>
|
||||
Date: Mon, 3 Nov 2025 17:49:51 +0700
|
||||
Subject: [PATCH 3/7] ntfsplus: Backport ntfs_iomap.c functions to kernels
|
||||
|
|
@ -52,7 +52,7 @@ index a6d2c9e01..5381ad904 100644
|
|||
+#endif
|
||||
\ No newline at end of file
|
||||
diff --git a/fs/ntfsplus/ntfs_iomap.h b/fs/ntfsplus/ntfs_iomap.h
|
||||
index b1a5d55fa..a7df6a42b 100644
|
||||
index b1a5d55fa..eac0c9c60 100644
|
||||
--- a/fs/ntfsplus/ntfs_iomap.h
|
||||
+++ b/fs/ntfsplus/ntfs_iomap.h
|
||||
@@ -12,6 +12,10 @@
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
From 0182fed91bf397fed59bacc49664e64a98404280 Mon Sep 17 00:00:00 2001
|
||||
From 3489d369a8199cad73aa251c325fadf2c6f40b30 Mon Sep 17 00:00:00 2001
|
||||
From: shadichy <shadichy@blisslabs.org>
|
||||
Date: Sun, 2 Nov 2025 04:20:28 +0700
|
||||
Subject: [PATCH 4/7] ntfsplus: file.c: Using `mmap` instead of `mmap_prepare`
|
||||
|
|
@ -9,10 +9,10 @@ Subject: [PATCH 4/7] ntfsplus: file.c: Using `mmap` instead of `mmap_prepare`
|
|||
1 file changed, 39 insertions(+)
|
||||
|
||||
diff --git a/fs/ntfsplus/file.c b/fs/ntfsplus/file.c
|
||||
index 27c9e47d8..ea32d8091 100644
|
||||
index e2e506a62..ac42e1129 100644
|
||||
--- a/fs/ntfsplus/file.c
|
||||
+++ b/fs/ntfsplus/file.c
|
||||
@@ -706,6 +706,7 @@ static const struct vm_operations_struct ntfs_file_vm_ops = {
|
||||
@@ -694,6 +694,7 @@ static const struct vm_operations_struct ntfs_file_vm_ops = {
|
||||
.page_mkwrite = ntfs_filemap_page_mkwrite,
|
||||
};
|
||||
|
||||
|
|
@ -20,7 +20,7 @@ index 27c9e47d8..ea32d8091 100644
|
|||
static int ntfs_file_mmap_prepare(struct vm_area_desc *desc)
|
||||
{
|
||||
struct file *file = desc->file;
|
||||
@@ -739,6 +740,40 @@ static int ntfs_file_mmap_prepare(struct vm_area_desc *desc)
|
||||
@@ -727,6 +728,40 @@ static int ntfs_file_mmap_prepare(struct vm_area_desc *desc)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -61,7 +61,7 @@ index 27c9e47d8..ea32d8091 100644
|
|||
static int ntfs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
|
||||
u64 start, u64 len)
|
||||
{
|
||||
@@ -1037,7 +1072,11 @@ const struct file_operations ntfs_file_ops = {
|
||||
@@ -1016,7 +1051,11 @@ const struct file_operations ntfs_file_ops = {
|
||||
.read_iter = ntfs_file_read_iter,
|
||||
.write_iter = ntfs_file_write_iter,
|
||||
.fsync = ntfs_file_fsync,
|
||||
|
|
|
|||
|
|
@ -1,145 +1,64 @@
|
|||
From 6d17e2b940d8ea4f84c221f025b65403f5b9b239 Mon Sep 17 00:00:00 2001
|
||||
From 77b3499c65099fb25aa9ed9d544de9f73c25bd5f Mon Sep 17 00:00:00 2001
|
||||
From: shadichy <shadichy@blisslabs.org>
|
||||
Date: Sun, 2 Nov 2025 13:42:58 +0700
|
||||
Date: Thu, 6 Nov 2025 16:56:54 +0700
|
||||
Subject: [PATCH 6/7] ntfsplus: Update `iomap_zero_range`, `iomap_page_mkwrite`
|
||||
and `iomap_truncate_page` for kernels older than 6.15
|
||||
|
||||
---
|
||||
fs/ntfsplus/file.c | 47 ++++++++++++++++++++++++++++++---------------
|
||||
fs/ntfsplus/inode.c | 8 +++++---
|
||||
2 files changed, 36 insertions(+), 19 deletions(-)
|
||||
fs/ntfsplus/file.c | 2 +-
|
||||
fs/ntfsplus/inode.h | 16 +++++++++++++++-
|
||||
2 files changed, 16 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/fs/ntfsplus/file.c b/fs/ntfsplus/file.c
|
||||
index ea32d8091..232bfae24 100644
|
||||
index ac42e1129..0393ff5dc 100644
|
||||
--- a/fs/ntfsplus/file.c
|
||||
+++ b/fs/ntfsplus/file.c
|
||||
@@ -292,11 +292,13 @@ int ntfs_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
|
||||
if (NInoNonResident(NTFS_I(vi)) &&
|
||||
attr->ia_size < old_size) {
|
||||
err = iomap_truncate_page(vi, attr->ia_size, NULL,
|
||||
- &ntfs_read_iomap_ops,
|
||||
+ &ntfs_read_iomap_ops
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0))
|
||||
- &ntfs_iomap_folio_ops,
|
||||
+ , &ntfs_iomap_folio_ops, NULL
|
||||
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0))
|
||||
+ , NULL
|
||||
#endif
|
||||
- NULL);
|
||||
+ );
|
||||
if (err)
|
||||
goto out;
|
||||
}
|
||||
@@ -314,11 +316,13 @@ int ntfs_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
|
||||
round_up(old_size, PAGE_SIZE) - old_size,
|
||||
attr->ia_size - old_size);
|
||||
err = iomap_zero_range(vi, old_size, len,
|
||||
- NULL, &ntfs_read_iomap_ops,
|
||||
+ NULL, &ntfs_read_iomap_ops
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0))
|
||||
- &ntfs_iomap_folio_ops,
|
||||
+ , &ntfs_iomap_folio_ops, NULL
|
||||
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0))
|
||||
+ , NULL
|
||||
#endif
|
||||
- NULL);
|
||||
+ );
|
||||
}
|
||||
}
|
||||
if (ia_valid == ATTR_SIZE)
|
||||
@@ -695,7 +699,11 @@ static vm_fault_t ntfs_filemap_page_mkwrite(struct vm_fault *vmf)
|
||||
@@ -683,7 +683,7 @@ static vm_fault_t ntfs_filemap_page_mkwrite(struct vm_fault *vmf)
|
||||
sb_start_pagefault(inode->i_sb);
|
||||
file_update_time(vmf->vma->vm_file);
|
||||
|
||||
- ret = iomap_page_mkwrite(vmf, &ntfs_page_mkwrite_iomap_ops, NULL);
|
||||
+ ret = iomap_page_mkwrite(vmf, &ntfs_page_mkwrite_iomap_ops
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0))
|
||||
+ , NULL
|
||||
+#endif
|
||||
+ );
|
||||
+ ret = __iomap_page_mkwrite(vmf, &ntfs_page_mkwrite_iomap_ops, NULL);
|
||||
sb_end_pagefault(inode->i_sb);
|
||||
return ret;
|
||||
}
|
||||
@@ -707,6 +715,7 @@ static const struct vm_operations_struct ntfs_file_vm_ops = {
|
||||
};
|
||||
diff --git a/fs/ntfsplus/inode.h b/fs/ntfsplus/inode.h
|
||||
index 4641ca066..00b5c4eac 100644
|
||||
--- a/fs/ntfsplus/inode.h
|
||||
+++ b/fs/ntfsplus/inode.h
|
||||
@@ -351,17 +351,31 @@ int ntfs_extend_initialized_size(struct inode *vi, const loff_t offset,
|
||||
const loff_t new_size);
|
||||
void ntfs_set_vfs_operations(struct inode *inode, mode_t mode, dev_t dev);
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 16, 0))
|
||||
+
|
||||
static int ntfs_file_mmap_prepare(struct vm_area_desc *desc)
|
||||
{
|
||||
struct file *file = desc->file;
|
||||
@@ -983,11 +992,13 @@ static long ntfs_fallocate(struct file *file, int mode, loff_t offset, loff_t le
|
||||
to = min_t(loff_t, (start_vcn + 1) << vol->cluster_size_bits,
|
||||
end_offset);
|
||||
err = iomap_zero_range(vi, offset, to - offset, NULL,
|
||||
- &ntfs_read_iomap_ops,
|
||||
+ &ntfs_read_iomap_ops
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0))
|
||||
- &ntfs_iomap_folio_ops,
|
||||
+ , &ntfs_iomap_folio_ops, NULL
|
||||
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0))
|
||||
+ , NULL
|
||||
+/*
|
||||
+ * Wrappers for backward compatibility
|
||||
+ */
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0)
|
||||
#define __iomap_file_buffered_write iomap_file_buffered_write
|
||||
#define __iomap_truncate_page iomap_truncate_page
|
||||
#define __iomap_zero_range iomap_zero_range
|
||||
-#else
|
||||
+#define __iomap_page_mkwrite iomap_page_mkwrite
|
||||
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0)
|
||||
#define __iomap_file_buffered_write(iocb, from, ops, __write_ops, private) \
|
||||
iomap_file_buffered_write(iocb, from, ops, private)
|
||||
#define __iomap_truncate_page(inode, pos, did_zero, ops, __write_ops, private) \
|
||||
iomap_truncate_page(inode, pos, did_zero, ops, private)
|
||||
#define __iomap_zero_range(inode, pos, len, did_zero, ops, __write_ops, private) \
|
||||
iomap_zero_range(inode, pos, len, did_zero, ops, private)
|
||||
+#define __iomap_page_mkwrite iomap_page_mkwrite
|
||||
+#else
|
||||
+#define __iomap_file_buffered_write(iocb, from, ops, __write_ops, private) \
|
||||
+ iomap_file_buffered_write(iocb, from, ops, private)
|
||||
+#define __iomap_truncate_page(inode, pos, did_zero, ops, __write_ops, __private) \
|
||||
+ iomap_truncate_page(inode, pos, did_zero, ops)
|
||||
+#define __iomap_zero_range(inode, pos, len, did_zero, ops, __write_ops, __private) \
|
||||
+ iomap_zero_range(inode, pos, len, did_zero, ops)
|
||||
+#define __iomap_page_mkwrite(vmf, ops, __private) \
|
||||
+ iomap_page_mkwrite(vmf, ops)
|
||||
#endif
|
||||
- NULL);
|
||||
+ );
|
||||
if (err < 0 || (end_vcn - start_vcn) == 1)
|
||||
goto out;
|
||||
start_vcn++;
|
||||
@@ -997,11 +1008,13 @@ static long ntfs_fallocate(struct file *file, int mode, loff_t offset, loff_t le
|
||||
|
||||
from = (end_vcn - 1) << vol->cluster_size_bits;
|
||||
err = iomap_zero_range(vi, from, end_offset - from, NULL,
|
||||
- &ntfs_read_iomap_ops,
|
||||
+ &ntfs_read_iomap_ops
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0))
|
||||
- &ntfs_iomap_folio_ops,
|
||||
+ , &ntfs_iomap_folio_ops, NULL
|
||||
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0))
|
||||
+ , NULL
|
||||
#endif
|
||||
- NULL);
|
||||
+ );
|
||||
if (err < 0 || (end_vcn - start_vcn) == 1)
|
||||
goto out;
|
||||
end_vcn--;
|
||||
@@ -1052,11 +1065,13 @@ static long ntfs_fallocate(struct file *file, int mode, loff_t offset, loff_t le
|
||||
round_up(old_size, PAGE_SIZE) - old_size,
|
||||
offset - old_size);
|
||||
err = iomap_zero_range(vi, old_size, len, NULL,
|
||||
- &ntfs_read_iomap_ops,
|
||||
+ &ntfs_read_iomap_ops
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0))
|
||||
- &ntfs_iomap_folio_ops,
|
||||
+ , &ntfs_iomap_folio_ops, NULL
|
||||
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0))
|
||||
+ , NULL
|
||||
#endif
|
||||
- NULL);
|
||||
+ );
|
||||
}
|
||||
NInoSetFileNameDirty(ni);
|
||||
inode_set_mtime_to_ts(vi, inode_set_ctime_current(vi));
|
||||
diff --git a/fs/ntfsplus/inode.c b/fs/ntfsplus/inode.c
|
||||
index dd0ee4f86..520190307 100644
|
||||
--- a/fs/ntfsplus/inode.c
|
||||
+++ b/fs/ntfsplus/inode.c
|
||||
@@ -2418,11 +2418,13 @@ int ntfs_extend_initialized_size(struct inode *vi, const loff_t offset,
|
||||
if (!NInoCompressed(ni) && old_init_size < offset) {
|
||||
err = iomap_zero_range(vi, old_init_size,
|
||||
offset - old_init_size,
|
||||
- NULL, &ntfs_read_iomap_ops,
|
||||
+ NULL, &ntfs_read_iomap_ops
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0))
|
||||
- &ntfs_iomap_folio_ops,
|
||||
+ , &ntfs_iomap_folio_ops, NULL
|
||||
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0))
|
||||
+ , NULL
|
||||
#endif
|
||||
- NULL);
|
||||
+ );
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
#endif /* _LINUX_NTFS_INODE_H */
|
||||
--
|
||||
2.51.2
|
||||
|
||||
|
|
|
|||
10
PKGBUILD
10
PKGBUILD
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
pkgbase=ntfsplus-dkms-git
|
||||
pkgname=("$pkgbase" "ntfsplus-udev")
|
||||
pkgver=2025.10.24.r8.cdb5126be
|
||||
pkgver=2025.10.24.r8.d43516bfa
|
||||
pkgrel=1
|
||||
# epoch=1
|
||||
pkgdesc="A new NTFS driver for Linux promised to be better than NTFS3. These patches are directly taken from the maintainer's mailing list posts. Backported to 6.12."
|
||||
|
|
@ -131,11 +131,11 @@ source=(
|
|||
sha256sums=(
|
||||
SKIP
|
||||
0eb24ef10bcfe46dbb56a8e8fe111b30e0969c0ff19b64b802939929773e616f
|
||||
7a9305d0b4c874878d527ec7b8ed4dd61c8f973d3064eee80b6cc54375ef7515
|
||||
105a4a70c4aae4cfa65a677139a5b737b902d5be27ea246fdc04149198360f18
|
||||
c56243dedd1cb4155b03ef824725658ef22e5227c39bac3551ffa8bae676d090
|
||||
0f29c25ba2587b1a6ae4b10517455f204ab1b46a643abe6f0e94a470047d363e
|
||||
b1faf8a991a2188795cb048fbc9b5bd2e475b71d8cc879efcc1ab73c666ab4e3
|
||||
3e89e804ce6babcb23c55698a7d1a9adea1872ed30c1a548bdd3b9b6167e66a5
|
||||
1e97bca1a60febbe56eee2a30ff37f71ff6b2341fc6f1f89d3c920e896f20c32
|
||||
c16bbd7aefc178c8d6e6fda8761589145475dd6205266820a7a8d95d88dc9dec
|
||||
a8fbbc296fe31cad8d0dd6b17714d915b350bc0668b610345c9e33952cd6da9d
|
||||
dd75e9962be5563921101a7b5d2b852ae04cda9301ffb11c6ea574046f9f9474
|
||||
e217fa145f507b1e07e228e746528554f705f44fd5744f293b302b29df764b96
|
||||
ed9db8ec0caa09c977529c7ae89b808ee8c238331ec0fdf873525c115fcdfb7c
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue