.. | .. |
---|
94 | 94 | static struct nfs4_deviceid_node * |
---|
95 | 95 | nfs4_get_device_info(struct nfs_server *server, |
---|
96 | 96 | const struct nfs4_deviceid *dev_id, |
---|
97 | | - struct rpc_cred *cred, gfp_t gfp_flags) |
---|
| 97 | + const struct cred *cred, gfp_t gfp_flags) |
---|
98 | 98 | { |
---|
99 | 99 | struct nfs4_deviceid_node *d = NULL; |
---|
100 | 100 | struct pnfs_device *pdev = NULL; |
---|
.. | .. |
---|
184 | 184 | |
---|
185 | 185 | struct nfs4_deviceid_node * |
---|
186 | 186 | nfs4_find_get_deviceid(struct nfs_server *server, |
---|
187 | | - const struct nfs4_deviceid *id, struct rpc_cred *cred, |
---|
| 187 | + const struct nfs4_deviceid *id, const struct cred *cred, |
---|
188 | 188 | gfp_t gfp_mask) |
---|
189 | 189 | { |
---|
190 | 190 | long hash = nfs4_deviceid_hash(id); |
---|
.. | .. |
---|
284 | 284 | EXPORT_SYMBOL_GPL(nfs4_put_deviceid_node); |
---|
285 | 285 | |
---|
286 | 286 | void |
---|
| 287 | +nfs4_mark_deviceid_available(struct nfs4_deviceid_node *node) |
---|
| 288 | +{ |
---|
| 289 | + if (test_bit(NFS_DEVICEID_UNAVAILABLE, &node->flags)) { |
---|
| 290 | + clear_bit(NFS_DEVICEID_UNAVAILABLE, &node->flags); |
---|
| 291 | + smp_mb__after_atomic(); |
---|
| 292 | + } |
---|
| 293 | +} |
---|
| 294 | +EXPORT_SYMBOL_GPL(nfs4_mark_deviceid_available); |
---|
| 295 | + |
---|
| 296 | +void |
---|
287 | 297 | nfs4_mark_deviceid_unavailable(struct nfs4_deviceid_node *node) |
---|
288 | 298 | { |
---|
289 | 299 | node->timestamp_unavailable = jiffies; |
---|
| 300 | + smp_mb__before_atomic(); |
---|
290 | 301 | set_bit(NFS_DEVICEID_UNAVAILABLE, &node->flags); |
---|
| 302 | + smp_mb__after_atomic(); |
---|
291 | 303 | } |
---|
292 | 304 | EXPORT_SYMBOL_GPL(nfs4_mark_deviceid_unavailable); |
---|
293 | 305 | |
---|
.. | .. |
---|
302 | 314 | if (time_in_range(node->timestamp_unavailable, start, end)) |
---|
303 | 315 | return true; |
---|
304 | 316 | clear_bit(NFS_DEVICEID_UNAVAILABLE, &node->flags); |
---|
| 317 | + smp_mb__after_atomic(); |
---|
305 | 318 | } |
---|
306 | 319 | return false; |
---|
307 | 320 | } |
---|