diff --git a/qtfs/qtfs/sb.c b/qtfs/qtfs/sb.c index 41ed1e5f99baaf96c3cbae25d2dd7e3c26dd404a..d31ebd86a0c8d1e4565122d5a59b5af62adb3961 100644 --- a/qtfs/qtfs/sb.c +++ b/qtfs/qtfs/sb.c @@ -1543,7 +1543,7 @@ const char *qtfs_getlink(struct dentry *dentry, } len = strlen(qtfs_link_inv_prefix) + strlen(rsp->path) + 1; if (len > MAX_PATH_LEN || len == 0) { - qtfs_err("qtfs getlink failed. path name too long:%s - %s\n", fsinfo->mnt_path, rsp->path); + qtfs_err("qtfs getlink failed. path name too long:%s - %s\n", (fsinfo->mnt_path == NULL) ? "NULL" : fsinfo->mnt_path, rsp->path); qtfs_conn_put_param(pvar); return ERR_PTR(-EINVAL); } @@ -1770,8 +1770,12 @@ static char *qtfs_get_data_options(void *data_orig, char *key) char *finded = NULL; char *next_deli = NULL; // ignore mount point path - char *data = strchr((const char *)data_orig, ','); - if (data == NULL || key == NULL) { + char *data; + if (data_orig == NULL || key == NULL) { + return NULL; + } + data = strchr((const char *)data_orig, ','); + if (data == NULL) { return NULL; } while (finded == NULL && data != NULL) { @@ -1870,8 +1874,7 @@ struct dentry *qtfs_fs_mount(struct file_system_type *fs_type, priv->type = qtfs_get_type(data); strlcpy(priv->peer_path, dev_name, NAME_MAX); if (qtfs_get_mnt_path(priv, data) != 0) { - qtfs_err("get qtfs mnt path failed, dev name:%s, data:%s", dev_name, (char *)data); - return ERR_PTR(-EFAULT); + qtfs_info("ignore mnt path, dev name:%s", dev_name); } ret = mount_nodev(fs_type, flags, (void *)priv, qtfs_fill_super); diff --git a/qtfs/qtfs_server/fsops.c b/qtfs/qtfs_server/fsops.c index eeefd74cbaa8bb6d9c6c7dafe04a68ed5e03f7c4..17e392325dc9c464e2210a4e29ab339b524c84e8 100644 --- a/qtfs/qtfs_server/fsops.c +++ b/qtfs/qtfs_server/fsops.c @@ -781,8 +781,12 @@ static int handle_getattr(struct qtserver_arg *arg) qtfs_err("handle getattr path:%s failed, ret:%d %s\n", req->path, ret, (ret != -ENOENT) ? "." : "file not exist"); goto failed; } - +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 6, 0)) + ret = vfs_getattr(&path, &rsp->stat, req->request_mask, req->query_flags & (~AT_GETATTR_NOSEC)); +#else ret = vfs_getattr(&path, &rsp->stat, req->request_mask, req->query_flags); +#endif + if (ret) { qtfs_err("vfs getattr path:%s ret:%d\n", req->path, ret); rsp->errno = ret;