diff options
Diffstat (limited to 'fs/nfs/nfs4proc.c')
-rw-r--r-- | fs/nfs/nfs4proc.c | 49 |
1 files changed, 8 insertions, 41 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index ff2c5f83ce87..7c0baf23abdc 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -2432,18 +2432,10 @@ static int nfs4_read_done(struct rpc_task *task, struct nfs_read_data *data) | |||
2432 | return 0; | 2432 | return 0; |
2433 | } | 2433 | } |
2434 | 2434 | ||
2435 | static void nfs4_proc_read_setup(struct nfs_read_data *data) | 2435 | static void nfs4_proc_read_setup(struct nfs_read_data *data, struct rpc_message *msg) |
2436 | { | 2436 | { |
2437 | struct rpc_message msg = { | ||
2438 | .rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_READ], | ||
2439 | .rpc_argp = &data->args, | ||
2440 | .rpc_resp = &data->res, | ||
2441 | .rpc_cred = data->cred, | ||
2442 | }; | ||
2443 | |||
2444 | data->timestamp = jiffies; | 2437 | data->timestamp = jiffies; |
2445 | 2438 | msg->rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_READ]; | |
2446 | rpc_call_setup(&data->task, &msg, 0); | ||
2447 | } | 2439 | } |
2448 | 2440 | ||
2449 | static int nfs4_write_done(struct rpc_task *task, struct nfs_write_data *data) | 2441 | static int nfs4_write_done(struct rpc_task *task, struct nfs_write_data *data) |
@@ -2461,33 +2453,15 @@ static int nfs4_write_done(struct rpc_task *task, struct nfs_write_data *data) | |||
2461 | return 0; | 2453 | return 0; |
2462 | } | 2454 | } |
2463 | 2455 | ||
2464 | static void nfs4_proc_write_setup(struct nfs_write_data *data, int how) | 2456 | static void nfs4_proc_write_setup(struct nfs_write_data *data, struct rpc_message *msg) |
2465 | { | 2457 | { |
2466 | struct rpc_message msg = { | 2458 | struct nfs_server *server = NFS_SERVER(data->inode); |
2467 | .rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_WRITE], | 2459 | |
2468 | .rpc_argp = &data->args, | ||
2469 | .rpc_resp = &data->res, | ||
2470 | .rpc_cred = data->cred, | ||
2471 | }; | ||
2472 | struct inode *inode = data->inode; | ||
2473 | struct nfs_server *server = NFS_SERVER(inode); | ||
2474 | int stable; | ||
2475 | |||
2476 | if (how & FLUSH_STABLE) { | ||
2477 | if (!NFS_I(inode)->ncommit) | ||
2478 | stable = NFS_FILE_SYNC; | ||
2479 | else | ||
2480 | stable = NFS_DATA_SYNC; | ||
2481 | } else | ||
2482 | stable = NFS_UNSTABLE; | ||
2483 | data->args.stable = stable; | ||
2484 | data->args.bitmask = server->attr_bitmask; | 2460 | data->args.bitmask = server->attr_bitmask; |
2485 | data->res.server = server; | 2461 | data->res.server = server; |
2486 | |||
2487 | data->timestamp = jiffies; | 2462 | data->timestamp = jiffies; |
2488 | 2463 | ||
2489 | /* Finalize the task. */ | 2464 | msg->rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_WRITE]; |
2490 | rpc_call_setup(&data->task, &msg, 0); | ||
2491 | } | 2465 | } |
2492 | 2466 | ||
2493 | static int nfs4_commit_done(struct rpc_task *task, struct nfs_write_data *data) | 2467 | static int nfs4_commit_done(struct rpc_task *task, struct nfs_write_data *data) |
@@ -2502,20 +2476,13 @@ static int nfs4_commit_done(struct rpc_task *task, struct nfs_write_data *data) | |||
2502 | return 0; | 2476 | return 0; |
2503 | } | 2477 | } |
2504 | 2478 | ||
2505 | static void nfs4_proc_commit_setup(struct nfs_write_data *data, int how) | 2479 | static void nfs4_proc_commit_setup(struct nfs_write_data *data, struct rpc_message *msg) |
2506 | { | 2480 | { |
2507 | struct rpc_message msg = { | ||
2508 | .rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_COMMIT], | ||
2509 | .rpc_argp = &data->args, | ||
2510 | .rpc_resp = &data->res, | ||
2511 | .rpc_cred = data->cred, | ||
2512 | }; | ||
2513 | struct nfs_server *server = NFS_SERVER(data->inode); | 2481 | struct nfs_server *server = NFS_SERVER(data->inode); |
2514 | 2482 | ||
2515 | data->args.bitmask = server->attr_bitmask; | 2483 | data->args.bitmask = server->attr_bitmask; |
2516 | data->res.server = server; | 2484 | data->res.server = server; |
2517 | 2485 | msg->rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_COMMIT]; | |
2518 | rpc_call_setup(&data->task, &msg, 0); | ||
2519 | } | 2486 | } |
2520 | 2487 | ||
2521 | /* | 2488 | /* |