On Wed, Oct 26, 2016 at 12:31:03AM +0300, Dan Carpenter wrote: > Hello Seth Forshee, > > The patch 60bcc88ad185: "fuse: Add posix ACL support" from Aug 29, > 2016, leads to the following static checker warning: > > fs/fuse/acl.c:39 fuse_get_acl() > warn: we tested 'fc->no_getxattr' before and it was 'false' > > fs/fuse/acl.c > 14 struct posix_acl *fuse_get_acl(struct inode *inode, int type) > 15 { > 16 struct fuse_conn *fc = get_fuse_conn(inode); > 17 int size; > 18 const char *name; > 19 void *value = NULL; > 20 struct posix_acl *acl; > 21 > 22 if (!fc->posix_acl || fc->no_getxattr) > > If "fc->no_getxattr" is set then we return NULL. > > 23 return NULL; > 24 > 25 if (type == ACL_TYPE_ACCESS) > 26 name = XATTR_NAME_POSIX_ACL_ACCESS; > 27 else if (type == ACL_TYPE_DEFAULT) > 28 name = XATTR_NAME_POSIX_ACL_DEFAULT; > 29 else > 30 return ERR_PTR(-EOPNOTSUPP); > 31 > 32 value = kmalloc(PAGE_SIZE, GFP_KERNEL); > 33 if (!value) > 34 return ERR_PTR(-ENOMEM); > 35 size = fuse_getxattr(inode, name, value, PAGE_SIZE); > 36 if (size > 0) > 37 acl = posix_acl_from_xattr(&init_user_ns, value, size); > 38 else if ((size == 0) || (size == -ENODATA) || > 39 (size == -EOPNOTSUPP && fc->no_getxattr)) > ^^^^^^^^^^^^^^^ > So we can't actually reach here. This analysis is incorrect. fc->no_getxattr may be set by the fuse_getxattr() call above. Thanks, Seth -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html