|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [mini-os master] 9pfs: store bepath in struct struct dev_9pfs
commit b44b9dfa0722e5fbdd1e90e932b8b1b148899f96
Author: Juergen Gross <jgross@xxxxxxxx>
AuthorDate: Tue Jul 15 15:29:31 2025 +0200
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Wed Jul 16 15:04:43 2025 +0200
9pfs: store bepath in struct struct dev_9pfs
Use struct dev_9pfs for storing the backend path of the device state
in order to avoid code duplication in init_9pfront() and
shutdown_9pfront().
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Reviewed-by: Jason Andryuk <jason.andryuk@xxxxxxx>
---
9pfront.c | 23 ++++++++++-------------
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/9pfront.c b/9pfront.c
index 895426d..2bfc49b 100644
--- a/9pfront.c
+++ b/9pfront.c
@@ -25,6 +25,7 @@ struct dev_9pfs {
char nodename[20];
unsigned int dom;
char *backend;
+ char bepath[64];
char *tag;
const char *mnt;
@@ -1103,7 +1104,6 @@ void *init_9pfront(unsigned int id, const char *mnt)
char *reason = "";
xenbus_transaction_t xbt;
int retry = 1;
- char bepath[64] = { 0 };
XenbusState state;
unsigned int i;
void *addr;
@@ -1137,11 +1137,12 @@ void *init_9pfront(unsigned int id, const char *mnt)
if ( msg )
goto err;
- snprintf(bepath, sizeof(bepath), "%s/state", dev->backend);
- free(xenbus_watch_path_token(XBT_NIL, bepath, bepath, &dev->events));
- state = xenbus_read_integer(bepath);
+ snprintf(dev->bepath, sizeof(dev->bepath), "%s/state", dev->backend);
+ free(xenbus_watch_path_token(XBT_NIL, dev->bepath, dev->bepath,
+ &dev->events));
+ state = xenbus_read_integer(dev->bepath);
while ( msg == NULL && state < XenbusStateInitWait )
- msg = xenbus_wait_for_state_change(bepath, &state, &dev->events);
+ msg = xenbus_wait_for_state_change(dev->bepath, &state, &dev->events);
if ( msg || state != XenbusStateInitWait )
{
reason = "illegal backend state";
@@ -1228,9 +1229,9 @@ void *init_9pfront(unsigned int id, const char *mnt)
free(xenbus_transaction_end(xbt, 0, &retry));
}
- state = xenbus_read_integer(bepath);
+ state = xenbus_read_integer(dev->bepath);
while ( msg == NULL && state < XenbusStateConnected )
- msg = xenbus_wait_for_state_change(bepath, &state, &dev->events);
+ msg = xenbus_wait_for_state_change(dev->bepath, &state, &dev->events);
if ( msg || state != XenbusStateConnected )
{
reason = "illegal backend state";
@@ -1263,8 +1264,6 @@ void *init_9pfront(unsigned int id, const char *mnt)
free(xenbus_transaction_end(xbt, 1, &retry));
err:
- if ( bepath[0] )
- free(xenbus_unwatch_path_token(XBT_NIL, bepath, bepath));
if ( msg )
printk("9pfsfront add %u failed, error %s accessing Xenstore\n",
id, msg);
@@ -1279,22 +1278,20 @@ EXPORT_SYMBOL(init_9pfront);
void shutdown_9pfront(void *dev)
{
struct dev_9pfs *dev9p = dev;
- char bepath[64];
XenbusState state;
char *msg;
char *reason = "";
umount(dev9p->mnt);
- snprintf(bepath, sizeof(bepath), "%s/state", dev9p->backend);
msg = xenbus_printf(XBT_NIL, dev9p->nodename, "state", "%u",
XenbusStateClosing);
if ( msg )
goto err;
- state = xenbus_read_integer(bepath);
+ state = xenbus_read_integer(dev9p->bepath);
while ( msg == NULL && state < XenbusStateClosing)
- msg = xenbus_wait_for_state_change(bepath, &state, &dev9p->events);
+ msg = xenbus_wait_for_state_change(dev9p->bepath, &state,
&dev9p->events);
if ( msg || state != XenbusStateClosing )
{
reason = "illegal backend state";
--
generated by git-patchbot for /home/xen/git/mini-os.git#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |