diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/nfs/callback_proc.c | 2 | ||||
-rw-r--r-- | fs/nfs/nfs4_fs.h | 2 | ||||
-rw-r--r-- | fs/nfs/nfs4proc.c | 8 |
3 files changed, 11 insertions, 1 deletions
diff --git a/fs/nfs/callback_proc.c b/fs/nfs/callback_proc.c index 0ef047b7d28d..15b9879d6fbb 100644 --- a/fs/nfs/callback_proc.c +++ b/fs/nfs/callback_proc.c | |||
@@ -576,7 +576,7 @@ __be32 nfs4_callback_recallslot(struct cb_recallslotargs *args, void *dummy, | |||
576 | if (args->crsa_target_max_slots == fc_tbl->max_slots) | 576 | if (args->crsa_target_max_slots == fc_tbl->max_slots) |
577 | goto out; | 577 | goto out; |
578 | 578 | ||
579 | fc_tbl->target_highest_slotid = args->crsa_target_max_slots; | 579 | nfs41_set_target_slotid(fc_tbl, args->crsa_target_max_slots); |
580 | nfs41_handle_recall_slot(cps->clp); | 580 | nfs41_handle_recall_slot(cps->clp); |
581 | out: | 581 | out: |
582 | dprintk("%s: exit with status = %d\n", __func__, ntohl(status)); | 582 | dprintk("%s: exit with status = %d\n", __func__, ntohl(status)); |
diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h index 42c58691fb41..5d4e82b10c3c 100644 --- a/fs/nfs/nfs4_fs.h +++ b/fs/nfs/nfs4_fs.h | |||
@@ -260,6 +260,8 @@ extern int nfs4_proc_layoutcommit(struct nfs4_layoutcommit_data *data, | |||
260 | 260 | ||
261 | extern struct nfs4_slot *nfs4_alloc_slots(struct nfs4_slot_table *table, | 261 | extern struct nfs4_slot *nfs4_alloc_slots(struct nfs4_slot_table *table, |
262 | u32 max_slots, gfp_t gfp_flags); | 262 | u32 max_slots, gfp_t gfp_flags); |
263 | extern void nfs41_set_target_slotid(struct nfs4_slot_table *tbl, | ||
264 | u32 target_highest_slotid); | ||
263 | 265 | ||
264 | static inline bool | 266 | static inline bool |
265 | is_ds_only_client(struct nfs_client *clp) | 267 | is_ds_only_client(struct nfs_client *clp) |
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 52435ec44193..62212231ce62 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -498,6 +498,14 @@ static void nfs41_set_target_slotid_locked(struct nfs4_slot_table *tbl, | |||
498 | tbl->generation++; | 498 | tbl->generation++; |
499 | } | 499 | } |
500 | 500 | ||
501 | void nfs41_set_target_slotid(struct nfs4_slot_table *tbl, | ||
502 | u32 target_highest_slotid) | ||
503 | { | ||
504 | spin_lock(&tbl->slot_tbl_lock); | ||
505 | nfs41_set_target_slotid_locked(tbl, target_highest_slotid); | ||
506 | spin_unlock(&tbl->slot_tbl_lock); | ||
507 | } | ||
508 | |||
501 | static void nfs41_set_server_slotid_locked(struct nfs4_slot_table *tbl, | 509 | static void nfs41_set_server_slotid_locked(struct nfs4_slot_table *tbl, |
502 | u32 highest_slotid) | 510 | u32 highest_slotid) |
503 | { | 511 | { |