]> git.pld-linux.org Git - packages/zfs.git/blame - linux-3.18.patch
- fix building with linux 4.0
[packages/zfs.git] / linux-3.18.patch
CommitLineData
97d46215
JR
1From 107077a193a5c35e83ab3ba890c429f31736d055 Mon Sep 17 00:00:00 2001
2From: Ned Bass <bass6@llnl.gov>
3Date: Thu, 16 Oct 2014 13:52:56 -0700
4Subject: [PATCH] Remove checks for mandatory locks
5
6The Linux VFS handles mandatory locks generically so we shouldn't
7need to check for conflicting locks in zfs_read(), zfs_write(), or
8zfs_freesp(). Linux 3.18 removed the lock_may_read() and
9lock_may_write() interfaces which we were relying on for this
10purpose. Rather than emulating those interfaces we remove the
11redundant checks.
12
13Signed-off-by: Ned Bass <bass6@llnl.gov>
14Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
15Closes #2804
16---
17 module/zfs/zfs_vnops.c | 18 ------------------
18 module/zfs/zfs_znode.c | 10 ----------
19 2 files changed, 28 deletions(-)
20
21diff --git a/module/zfs/zfs_vnops.c b/module/zfs/zfs_vnops.c
22index 4f53173..02fab99 100644
23--- a/module/zfs/zfs_vnops.c
24+++ b/module/zfs/zfs_vnops.c
25@@ -471,15 +471,6 @@ zfs_read(struct inode *ip, uio_t *uio, int ioflag, cred_t *cr)
26 }
27
28 /*
29- * Check for mandatory locks
30- */
31- if (mandatory_lock(ip) &&
32- !lock_may_read(ip, uio->uio_loffset, uio->uio_resid)) {
33- ZFS_EXIT(zsb);
34- return (SET_ERROR(EAGAIN));
35- }
36-
37- /*
38 * If we're in FRSYNC mode, sync out this znode before reading it.
39 */
40 if (ioflag & FRSYNC || zsb->z_os->os_sync == ZFS_SYNC_ALWAYS)
41@@ -648,15 +639,6 @@ zfs_write(struct inode *ip, uio_t *uio, int ioflag, cred_t *cr)
42 }
43
44 /*
45- * Check for mandatory locks before calling zfs_range_lock()
46- * in order to prevent a deadlock with locks set via fcntl().
47- */
48- if (mandatory_lock(ip) && !lock_may_write(ip, woff, n)) {
49- ZFS_EXIT(zsb);
50- return (SET_ERROR(EAGAIN));
51- }
52-
53- /*
54 * Pre-fault the pages to ensure slow (eg NFS) pages
55 * don't hold up txg.
56 * Skip this if uio contains loaned arc_buf.
57diff --git a/module/zfs/zfs_znode.c b/module/zfs/zfs_znode.c
58index 23e0907..a7ef07c 100644
59--- a/module/zfs/zfs_znode.c
60+++ b/module/zfs/zfs_znode.c
61@@ -1471,7 +1471,6 @@ zfs_trunc(znode_t *zp, uint64_t end)
62 int
63 zfs_freesp(znode_t *zp, uint64_t off, uint64_t len, int flag, boolean_t log)
64 {
65- struct inode *ip = ZTOI(zp);
66 dmu_tx_t *tx;
67 zfs_sb_t *zsb = ZTOZSB(zp);
68 zilog_t *zilog = zsb->z_log;
69@@ -1493,15 +1492,6 @@ zfs_freesp(znode_t *zp, uint64_t off, uint64_t len, int flag, boolean_t log)
70 return (error);
71 }
72
73- /*
74- * Check for any locks in the region to be freed.
75- */
76- if (ip->i_flock && mandatory_lock(ip)) {
77- uint64_t length = (len ? len : zp->z_size - off);
78- if (!lock_may_write(ip, off, length))
79- return (SET_ERROR(EAGAIN));
80- }
81-
82 if (len == 0) {
83 error = zfs_trunc(zp, off);
84 } else {
This page took 0.044866 seconds and 4 git commands to generate.