From: Kinglong Mee <kinglongmee@gmail.com>
To: Trond Myklebust <trond.myklebust@primarydata.com>
Cc: "linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>,
kinglongmee@gmail.com
Subject: [PATCH 3/7 v2] NFS: Check size by inode_newsize_ok in nfs_setattr
Date: Thu, 30 Jul 2015 21:41:42 +0800 [thread overview]
Message-ID: <55BA2996.9030804@gmail.com> (raw)
In-Reply-To: <55BA2936.4030404@gmail.com>
Set rlimit for NFS's files is useless right now.
For local process's rlimit, it should be checked by nfs client.
The same, CIFS also call inode_change_ok checking rlimit at its client
in cifs_setattr_nounix() and cifs_setattr_unix().
v2, same as v1.
Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
---
fs/nfs/inode.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index 0adc7d2..9304dfd 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -513,15 +513,14 @@ nfs_setattr(struct dentry *dentry, struct iattr *attr)
attr->ia_valid &= ~ATTR_MODE;
if (attr->ia_valid & ATTR_SIZE) {
- loff_t i_size;
-
BUG_ON(!S_ISREG(inode->i_mode));
- i_size = i_size_read(inode);
- if (attr->ia_size == i_size)
+ error = inode_newsize_ok(inode, attr->ia_size);
+ if (error)
+ return error;
+
+ if (attr->ia_size == i_size_read(inode))
attr->ia_valid &= ~ATTR_SIZE;
- else if (attr->ia_size < i_size && IS_SWAPFILE(inode))
- return -ETXTBSY;
}
/* Optimization: if the end result is no change, don't RPC */
--
2.4.3
next prev parent reply other threads:[~2015-07-30 13:41 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-30 13:39 [PATCH 0/7 v2] Some bugfixes and exclcreat supports Kinglong Mee
2015-07-30 13:40 ` [PATCH 1/7] NFS: Remove duplicate svc_xprt_put from nfs41_callback_up Kinglong Mee
2015-07-30 13:41 ` Kinglong Mee [this message]
2015-08-04 10:43 ` [PATCH 3/7 v2] NFS: Check size by inode_newsize_ok in nfs_setattr Kinglong Mee
2015-08-26 0:10 ` Trond Myklebust
2015-07-30 13:42 ` [PATCH 4/7] NFS: Make opened as optional argument in _nfs4_do_open Kinglong Mee
2015-07-30 13:42 ` [PATCH 4/7 v2] " Kinglong Mee
2015-07-30 13:41 ` [PATCH 2/7 v2] NFS: Error out when register_shrinker fail in register_nfs_fs Kinglong Mee
2015-07-30 13:43 ` [PATCH 5/7 v2] NFS: Update NFS4_BITMAP_SIZE Kinglong Mee
2015-07-30 13:44 ` [PATCH 6/7 v2] NFS: Get suppattr_exclcreat when getting server, capabilities Kinglong Mee
2015-07-30 13:45 ` [PATCH 7/7 v2] NFS: Send attributes in OPEN request for NFS4_CREATE_EXCLUSIVE4_1 Kinglong Mee
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55BA2996.9030804@gmail.com \
--to=kinglongmee@gmail.com \
--cc=linux-nfs@vger.kernel.org \
--cc=trond.myklebust@primarydata.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.