NFS client bugfixes for Linux 4.1
Highlights include: - Fix a Linux-4.1 regression affecting stat() - Take an extra reference to fl->fl_file when running a setlk -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJVW1vvAAoJEGcL54qWCgDyI+YP/iqjM0YV+ZNMoLTXvO2+N1tw Bwc5zYDTG1De2OQTup4Ed4+3duBwchMW3NohTZP+/f1Sbhl8ZF2nYI6bBEMUvZbP fECmYGRZebqwloJCdu95QIaEZ67bn3+fUSwfm+krJzi7Thzwcqj+DiMaDDJzgcr1 j+Acd5WHrdTBEpx3yXqCPkwX3L71CYj3SO2eO7cimAX9JQrHz8IkQtkf1UsUqSGw Wsb2l6wOIGGn+2PLyvvLttO83lTp1WjP7F6wG+zYcJCTl/f/j5VPAFIfXdi/ZoOw 9KUE8+bUvmnn2wBlHj8hlVodfRBxRq+X/e6yfy2roMvpzQKXc30pN/xKJOQqmT2i hn48hAFNTfo+dO0oPmbrgq28ooO/Xl7krQeJPpMRsOL51LNkjLovfBImYZcXqmxs THC/SnSVQyL6YbBfHPGCzu7iam8kxY2ivwfsrrTcg9Mja4EMwJ7+FW8ezn1TSDB8 T4047eCiQQAAuxICSQr2v+967gjKtOqFESEq6he9EN8bKN2x6KJ7f8u9CUagA7SK /iaQVqXT7Iq9JjSOIXN1uWkzQJg/x35YyXBb5HRQstaxhDO1QBMPMAN091xnZiwz ZSOxMseRjjBHRjuxkMoZ7CIa0refRNHRlhEh/IBivbhYP6K0ra43hWMi8lHQMBIp dN6EpW/CmQzNOom+n82w =ChTV -----END PGP SIGNATURE----- Merge tag 'nfs-for-4.1-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs Pull two NFS client bugfixes from Trond Myklebust: "Highlights include: - fix a Linux-4.1 regression affecting stat() - take an extra reference to fl->fl_file when running a setlk" * tag 'nfs-for-4.1-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: nfs: take extra reference to fl->fl_file when running a setlk nfs: stat(2) fails during cthon04 basic test5 on NFSv4.0
This commit is contained in:
commit
1113cdfe7d
|
@ -38,6 +38,7 @@
|
|||
#include <linux/mm.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/file.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ratelimit.h>
|
||||
#include <linux/printk.h>
|
||||
|
@ -5604,6 +5605,7 @@ static struct nfs4_lockdata *nfs4_alloc_lockdata(struct file_lock *fl,
|
|||
p->server = server;
|
||||
atomic_inc(&lsp->ls_count);
|
||||
p->ctx = get_nfs_open_context(ctx);
|
||||
get_file(fl->fl_file);
|
||||
memcpy(&p->fl, fl, sizeof(p->fl));
|
||||
return p;
|
||||
out_free_seqid:
|
||||
|
@ -5716,6 +5718,7 @@ static void nfs4_lock_release(void *calldata)
|
|||
nfs_free_seqid(data->arg.lock_seqid);
|
||||
nfs4_put_lock_state(data->lsp);
|
||||
put_nfs_open_context(data->ctx);
|
||||
fput(data->fl.fl_file);
|
||||
kfree(data);
|
||||
dprintk("%s: done!\n", __func__);
|
||||
}
|
||||
|
|
|
@ -1845,12 +1845,15 @@ int nfs_wb_all(struct inode *inode)
|
|||
trace_nfs_writeback_inode_enter(inode);
|
||||
|
||||
ret = filemap_write_and_wait(inode->i_mapping);
|
||||
if (!ret) {
|
||||
ret = nfs_commit_inode(inode, FLUSH_SYNC);
|
||||
if (!ret)
|
||||
pnfs_sync_inode(inode, true);
|
||||
}
|
||||
if (ret)
|
||||
goto out;
|
||||
ret = nfs_commit_inode(inode, FLUSH_SYNC);
|
||||
if (ret < 0)
|
||||
goto out;
|
||||
pnfs_sync_inode(inode, true);
|
||||
ret = 0;
|
||||
|
||||
out:
|
||||
trace_nfs_writeback_inode_exit(inode, ret);
|
||||
return ret;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue