Loading net/9p/client.c +12 −8 Original line number Diff line number Diff line Loading @@ -304,12 +304,13 @@ static int p9_tag_init(struct p9_client *c) c->tagpool = p9_idpool_create(); if (IS_ERR(c->tagpool)) { err = PTR_ERR(c->tagpool); c->tagpool = NULL; goto error; } p9_idpool_get(c->tagpool); /* reserve tag 0 */ err = p9_idpool_get(c->tagpool); /* reserve tag 0 */ if (err < 0) { p9_idpool_destroy(c->tagpool); goto error; } c->max_tag = 0; error: return err; Loading Loading @@ -789,11 +790,13 @@ struct p9_client *p9_client_create(const char *dev_name, char *options) spin_lock_init(&clnt->lock); INIT_LIST_HEAD(&clnt->fidlist); p9_tag_init(clnt); err = p9_tag_init(clnt); if (err < 0) goto free_client; err = parse_opts(options, clnt); if (err < 0) goto free_client; goto destroy_tagpool; if (!clnt->trans_mod) clnt->trans_mod = v9fs_get_default_trans(); Loading @@ -802,13 +805,12 @@ struct p9_client *p9_client_create(const char *dev_name, char *options) err = -EPROTONOSUPPORT; P9_DPRINTK(P9_DEBUG_ERROR, "No transport defined or default transport\n"); goto free_client; goto destroy_tagpool; } clnt->fidpool = p9_idpool_create(); if (IS_ERR(clnt->fidpool)) { err = PTR_ERR(clnt->fidpool); clnt->fidpool = NULL; goto put_trans; } Loading @@ -834,6 +836,8 @@ struct p9_client *p9_client_create(const char *dev_name, char *options) p9_idpool_destroy(clnt->fidpool); put_trans: v9fs_put_trans(clnt->trans_mod); destroy_tagpool: p9_idpool_destroy(clnt->tagpool); free_client: kfree(clnt); return ERR_PTR(err); Loading net/9p/util.c +1 −1 Original line number Diff line number Diff line Loading @@ -93,7 +93,7 @@ int p9_idpool_get(struct p9_idpool *p) retry: if (idr_pre_get(&p->pool, GFP_NOFS) == 0) return 0; return -1; spin_lock_irqsave(&p->lock, flags); Loading Loading
net/9p/client.c +12 −8 Original line number Diff line number Diff line Loading @@ -304,12 +304,13 @@ static int p9_tag_init(struct p9_client *c) c->tagpool = p9_idpool_create(); if (IS_ERR(c->tagpool)) { err = PTR_ERR(c->tagpool); c->tagpool = NULL; goto error; } p9_idpool_get(c->tagpool); /* reserve tag 0 */ err = p9_idpool_get(c->tagpool); /* reserve tag 0 */ if (err < 0) { p9_idpool_destroy(c->tagpool); goto error; } c->max_tag = 0; error: return err; Loading Loading @@ -789,11 +790,13 @@ struct p9_client *p9_client_create(const char *dev_name, char *options) spin_lock_init(&clnt->lock); INIT_LIST_HEAD(&clnt->fidlist); p9_tag_init(clnt); err = p9_tag_init(clnt); if (err < 0) goto free_client; err = parse_opts(options, clnt); if (err < 0) goto free_client; goto destroy_tagpool; if (!clnt->trans_mod) clnt->trans_mod = v9fs_get_default_trans(); Loading @@ -802,13 +805,12 @@ struct p9_client *p9_client_create(const char *dev_name, char *options) err = -EPROTONOSUPPORT; P9_DPRINTK(P9_DEBUG_ERROR, "No transport defined or default transport\n"); goto free_client; goto destroy_tagpool; } clnt->fidpool = p9_idpool_create(); if (IS_ERR(clnt->fidpool)) { err = PTR_ERR(clnt->fidpool); clnt->fidpool = NULL; goto put_trans; } Loading @@ -834,6 +836,8 @@ struct p9_client *p9_client_create(const char *dev_name, char *options) p9_idpool_destroy(clnt->fidpool); put_trans: v9fs_put_trans(clnt->trans_mod); destroy_tagpool: p9_idpool_destroy(clnt->tagpool); free_client: kfree(clnt); return ERR_PTR(err); Loading
net/9p/util.c +1 −1 Original line number Diff line number Diff line Loading @@ -93,7 +93,7 @@ int p9_idpool_get(struct p9_idpool *p) retry: if (idr_pre_get(&p->pool, GFP_NOFS) == 0) return 0; return -1; spin_lock_irqsave(&p->lock, flags); Loading