This can be an operation with very long latenc, if terabytes are
requested.

Signed-off-by: Kent Overstreet <[email protected]>
---
 fs/bcachefs/fs-io.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/fs/bcachefs/fs-io.c b/fs/bcachefs/fs-io.c
index 717e7b94c66f..3dcb0a165401 100644
--- a/fs/bcachefs/fs-io.c
+++ b/fs/bcachefs/fs-io.c
@@ -626,6 +626,10 @@ static noinline int __bchfs_fallocate(struct 
bch_inode_info *inode, int mode,
                u64 hole_start, hole_end;
                u32 snapshot;
 
+               ret = unlikely(signal_pending(current)) ? -ERESTARTSYS : 0;
+               if (ret)
+                       break;
+
                bch2_trans_begin(trans);
 
                if (bkey_ge(iter.pos, end_pos))
-- 
2.49.0


Reply via email to