[Devel] [PATCH VZ10 3/7] fs/fuse: remove fuse_kill_requests()

Liu Kui kui.liu at virtuozzo.com
Tue Aug 26 13:44:51 MSK 2025


Clean up code related to fuse_kill_requests() that's no longer used.

Related to #VSTOR-101450
Signed-off-by: Liu Kui <kui.liu at virtuozzo.com>
---
 fs/fuse/fuse_i.h                   |  3 -
 fs/fuse/inode.c                    | 92 ------------------------------
 fs/fuse/kio/pcs/pcs_fuse_kdirect.c | 16 ------
 3 files changed, 111 deletions(-)

diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
index 6b3a66dbf4a2..104cf1596085 100644
--- a/fs/fuse/fuse_i.h
+++ b/fs/fuse/fuse_i.h
@@ -706,7 +706,6 @@ struct fuse_kio_ops {
 	int  (*file_open)(struct file *file, struct inode *inode);
 	void (*file_close)(struct file *file, struct inode *inode);
 	void (*inode_release)(struct fuse_inode *fi);
-	void (*kill_requests)(struct fuse_conn *fc, struct inode *inode);
 	int  (*ioctl)(struct file *file, struct inode *inode, unsigned int cmd, unsigned long arg, int len);
 	int  (*dev_ioctl)(struct fuse_conn *fc, unsigned int cmd, unsigned long arg, int len);
 };
@@ -1660,8 +1659,6 @@ int fuse_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
 struct fuse_file *__fuse_write_file_get(struct fuse_inode *fi);
 struct fuse_file *fuse_file_get(struct fuse_file *ff);
 void fuse_release_ff(struct inode *inode, struct fuse_file *ff);
-void fuse_kill_requests(struct fuse_conn *fc, struct inode *inode,
-			struct list_head *req_list);
 struct fuse_req *fuse_dev_find_request(unsigned int fd, u64 unique);
 
 void fuse_revoke_readpages(struct fuse_file *ff);
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
index a25ad82331d9..f6150ea1286b 100644
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@ -597,57 +597,6 @@ void fuse_unlock_inode(struct inode *inode, bool locked)
 		mutex_unlock(&get_fuse_inode(inode)->mutex);
 }
 
-void fuse_kill_requests(struct fuse_conn *fc, struct inode *inode,
-			struct list_head *req_list)
-{
-	struct fuse_req *req;
-
-	list_for_each_entry(req, req_list, list)
-		if (req->args->io_inode == inode && req->args->page_cache &&
-		    !req->args->killed) {
-			struct fuse_io_args *ia = container_of(req->args, typeof(*ia),
-							       ap.args);
-			int i;
-
-			BUG_ON(req->in.h.opcode != FUSE_READ);
-
-			/* skip the request that is under data write back IO */
-			if (test_bit(FR_LOCKED, &req->flags) && req->out.h.unique)
-				continue;
-
-			req->args->killed = 1;
-
-			for (i = 0; i < ia->ap.num_pages; i++)
-				folio_end_read(page_folio(ia->ap.pages[i]), 0);
-		}
-}
-EXPORT_SYMBOL_GPL(fuse_kill_requests);
-
-static void fuse_kill_routing(struct fuse_rtable *rt, struct fuse_conn *fc, struct inode *inode)
-{
-	if (rt->type == FUSE_ROUTING_CPU) {
-		int cpu;
-
-		for_each_online_cpu(cpu) {
-			struct fuse_iqueue *fiq =  per_cpu_ptr(rt->iqs_cpu, cpu);
-
-			spin_lock(&fiq->lock);
-			fuse_kill_requests(fc, inode, &fiq->pending);
-			spin_unlock(&fiq->lock);
-		}
-	} else if (rt->type == FUSE_ROUTING_SIZE || rt->type == FUSE_ROUTING_HASH) {
-		int i;
-
-		for (i = 0; i < rt->rt_size; i++) {
-			struct fuse_iqueue *fiq =  rt->iqs_table + i;
-
-			spin_lock(&fiq->lock);
-			fuse_kill_requests(fc, inode, &fiq->pending);
-			spin_unlock(&fiq->lock);
-		}
-	}
-}
-
 int fuse_invalidate_files(struct fuse_conn *fc, u64 nodeid)
 {
 	struct inode *inode;
@@ -685,53 +634,12 @@ int fuse_invalidate_files(struct fuse_conn *fc, u64 nodeid)
 
 	err = filemap_write_and_wait(inode->i_mapping);
 	if (!err || err == -EIO) { /* AS_EIO might trigger -EIO */
-#if 0
-		struct fuse_dev *fud;
-		spin_lock(&fc->lock);
-
-		/*
-		 * Clean bg_queue first to prevent requests being flushed
-		 * to an input queue after it has been cleaned .
-		 */
-		spin_lock(&fc->bg_lock);
-		fuse_kill_requests(fc, inode, &fc->bg_queue);
-		spin_unlock(&fc->bg_lock);
-
-		if (fc->kio.op && fc->kio.op->kill_requests)
-			fc->kio.op->kill_requests(fc, inode);
-
-		spin_lock(&fc->main_iq.lock);
-		fuse_kill_requests(fc, inode, &fc->main_iq.pending);
-		spin_unlock(&fc->main_iq.lock);
-
-		fuse_kill_routing(&fc->rrt, fc, inode);
-		fuse_kill_routing(&fc->wrt, fc, inode);
-
-		list_for_each_entry(fud, &fc->devices, entry) {
-			struct fuse_pqueue *fpq = &fud->pq;
-			struct fuse_iqueue *fiq = fud->fiq;
-			int i;
-
-			spin_lock(&fiq->lock);
-			fuse_kill_requests(fc, inode, &fiq->pending);
-			spin_unlock(&fiq->lock);
-
-			spin_lock(&fpq->lock);
-			for (i = 0; i < FUSE_PQ_HASH_SIZE; i++)
-				fuse_kill_requests(fc, inode, &fpq->processing[i]);
-			fuse_kill_requests(fc, inode, &fpq->io);
-			spin_unlock(&fpq->lock);
-		}
-
-		spin_unlock(&fc->lock);
-#endif
 		spin_lock(&fi->lock);
 		list_for_each_entry(ff, &fi->rw_files, rw_entry)
 			fuse_revoke_readpages(ff);
 		spin_unlock(&fi->lock);
 
 		wake_up(&fi->page_waitq); /* readpage[s] can wait on fuse wb */
-
 		err = invalidate_inode_pages2(inode->i_mapping);
 	}
 
diff --git a/fs/fuse/kio/pcs/pcs_fuse_kdirect.c b/fs/fuse/kio/pcs/pcs_fuse_kdirect.c
index 3638fe558f55..a2af5f10ec45 100644
--- a/fs/fuse/kio/pcs/pcs_fuse_kdirect.c
+++ b/fs/fuse/kio/pcs/pcs_fuse_kdirect.c
@@ -1797,21 +1797,6 @@ void pcs_kio_req_list(struct fuse_conn *fc, kio_req_itr kreq_cb, void *ctx)
 	pcs_kio_file_list(fc, kpcs_req_list_itr, &kreq_ctx);
 }
 
-static void kpcs_kill_lreq_itr(struct fuse_file *ff, struct pcs_dentry_info *di,
-			       void *ctx)
-{
-	struct inode *inode = ctx;
-
-	spin_lock(&di->kq_lock);
-	fuse_kill_requests(ff->fm->fc, inode, &di->kq);
-	spin_unlock(&di->kq_lock);
-}
-
-static void kpcs_kill_requests(struct fuse_conn *fc, struct inode *inode)
-{
-	pcs_kio_file_list(fc, kpcs_kill_lreq_itr, inode);
-}
-
 static int pcs_process_dislog(struct pcs_cluster_core *cc, struct pcs_mds_cached_event *evt)
 {
 	switch (evt->flags & PCS_MDS_EVT_F_OBJ_MASK) {
@@ -2061,7 +2046,6 @@ static struct fuse_kio_ops kio_pcs_ops = {
 	.file_open	= kpcs_file_open,
 	.file_close	= kpcs_file_close,
 	.inode_release	= kpcs_inode_release,
-	.kill_requests	= kpcs_kill_requests,
 	.ioctl		= kpcs_ioctl,
 	.dev_ioctl	= kpcs_dev_ioctl,
 };
-- 
2.39.5 (Apple Git-154)



More information about the Devel mailing list