From: Trond Myklebust Date: Sat, 25 Jun 2016 21:57:39 +0000 (-0400) Subject: NFSv4.2: llseek(SEEK_HOLE) and llseek(SEEK_DATA) don't require data sync X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=e95fc4a06983c14273a39d26aad9cc5a8a09ff64;p=openwrt%2Fstaging%2Fblogic.git NFSv4.2: llseek(SEEK_HOLE) and llseek(SEEK_DATA) don't require data sync We want to ensure that we write the cached data to the server, but don't require it be synced to disk. If the server reboots, we will get a stateid error, which will cause us to retry anyway. Signed-off-by: Trond Myklebust --- diff --git a/fs/nfs/nfs42proc.c b/fs/nfs/nfs42proc.c index b7d457cea03f..616dc254b38b 100644 --- a/fs/nfs/nfs42proc.c +++ b/fs/nfs/nfs42proc.c @@ -269,7 +269,11 @@ static loff_t _nfs42_proc_llseek(struct file *filep, if (status) return status; - nfs_wb_all(inode); + status = nfs_filemap_write_and_wait_range(inode->i_mapping, + offset, LLONG_MAX); + if (status) + return status; + status = nfs4_call_sync(server->client, server, &msg, &args.seq_args, &res.seq_res, 0); if (status == -ENOTSUPP)