git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git]
/
fs
/
afs
/
server.c
diff --git
a/fs/afs/server.c
b/fs/afs/server.c
index
e94628c
..
62b093a
100644
(file)
--- a/
fs/afs/server.c
+++ b/
fs/afs/server.c
@@
-123,7
+123,8
@@
int afs_server_lookup(struct afs_cell *cell, const struct in_addr *addr,
resurrect_server:
_debug("resurrecting server");
resurrect_server:
_debug("resurrecting server");
- list_move_tail(&zombie->link, &cell->sv_list);
+ list_del(&zombie->link);
+ list_add_tail(&zombie->link, &cell->sv_list);
afs_get_server(zombie);
afs_kafstimod_del_timer(&zombie->timeout);
spin_unlock(&cell->sv_gylock);
afs_get_server(zombie);
afs_kafstimod_del_timer(&zombie->timeout);
spin_unlock(&cell->sv_gylock);
@@
-167,7
+168,8
@@
void afs_put_server(struct afs_server *server)
}
spin_lock(&cell->sv_gylock);
}
spin_lock(&cell->sv_gylock);
- list_move_tail(&server->link, &cell->sv_graveyard);
+ list_del(&server->link);
+ list_add_tail(&server->link, &cell->sv_graveyard);
/* time out in 10 secs */
afs_kafstimod_add_timer(&server->timeout, 10 * HZ);
/* time out in 10 secs */
afs_kafstimod_add_timer(&server->timeout, 10 * HZ);
@@
-375,6
+377,7
@@
int afs_server_request_callslot(struct afs_server *server,
else if (list_empty(&server->fs_callq)) {
/* no one waiting */
server->fs_conn_cnt[nconn]++;
else if (list_empty(&server->fs_callq)) {
/* no one waiting */
server->fs_conn_cnt[nconn]++;
+ spin_unlock(&server->fs_lock);
}
else {
/* someone's waiting - dequeue them and wake them up */
}
else {
/* someone's waiting - dequeue them and wake them up */
@@
-392,9
+395,9
@@
int afs_server_request_callslot(struct afs_server *server,
}
pcallslot->ready = 1;
wake_up_process(pcallslot->task);
}
pcallslot->ready = 1;
wake_up_process(pcallslot->task);
+ spin_unlock(&server->fs_lock);
}
}
- spin_unlock(&server->fs_lock);
rxrpc_put_connection(callslot->conn);
callslot->conn = NULL;
rxrpc_put_connection(callslot->conn);
callslot->conn = NULL;