[Devel] [PATCH RHEL7 COMMIT] fuse kio_pcs: ignore special inodes

Konstantin Khorenko khorenko at virtuozzo.com
Tue Feb 27 18:29:26 MSK 2018


The commit is pushed to "branch-rh7-3.10.0-693.17.1.vz7.45.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-693.17.1.vz7.45.5
------>
commit 6f8bb26a2e103b8a93ae1eefb3a094e486472d03
Author: Dmitry Monakhov <dmonakhov at openvz.org>
Date:   Tue Feb 27 18:29:11 2018 +0300

    fuse kio_pcs: ignore special inodes
    
    Special inodes has no kdirect context and should be ignored.
    
    https://pmc.acronis.com/browse/VSTOR-8078
    
    Signed-off-by: Dmitry Monakhov <dmonakhov at openvz.org>
---
 fs/fuse/kio/pcs/pcs_fuse_kdirect.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/fs/fuse/kio/pcs/pcs_fuse_kdirect.c b/fs/fuse/kio/pcs/pcs_fuse_kdirect.c
index 35b309e392c8..b8503d55e246 100644
--- a/fs/fuse/kio/pcs/pcs_fuse_kdirect.c
+++ b/fs/fuse/kio/pcs/pcs_fuse_kdirect.c
@@ -899,13 +899,17 @@ static int kpcs_req_send(struct fuse_conn* fc, struct fuse_req *req, bool bg, bo
 	case FUSE_SETATTR: {
 		struct pcs_fuse_req *r = pcs_req_from_fuse(req);
 		struct fuse_setattr_in *inarg = (void*) req->in.args[0].value;
-		struct pcs_dentry_info *di = pcs_inode_from_fuse(fi);
+		struct pcs_dentry_info *di;
 		int shrink = 0;
 
-		if (!(inarg->valid & FATTR_SIZE))
+		/* Skip speciall inodes */
+		if (!fi->private)
 			return 1;
 
+		if (!(inarg->valid & FATTR_SIZE))
+			return 1;
 
+		di = pcs_inode_from_fuse(fi);
 		spin_lock(&di->lock);
 		if (inarg->size < di->fileinfo.attr.size) {
 			BUG_ON(di->size.shrink);


More information about the Devel mailing list