]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ceph: remove redundant code for max file size verification
authorChao Yu <chao2.yu@samsung.com>
Wed, 17 Sep 2014 09:26:06 +0000 (17:26 +0800)
committerIlya Dryomov <idryomov@redhat.com>
Tue, 14 Oct 2014 17:03:40 +0000 (21:03 +0400)
Both ceph_update_writeable_page and ceph_setattr will verify file size
with max size ceph supported.
There are two caller for ceph_update_writeable_page, ceph_write_begin and
ceph_page_mkwrite. For ceph_write_begin, we have already verified the size in
generic_write_checks of ceph_write_iter; for ceph_page_mkwrite, we have no
chance to change file size when mmap. Likewise we have already verified the size
in inode_change_ok when we call ceph_setattr.
So let's remove the redundant code for max file size verification.

Signed-off-by: Chao Yu <chao2.yu@samsung.com>
Reviewed-by: Yan, Zheng <zyan@redhat.com>
fs/ceph/addr.c
fs/ceph/inode.c

index 90b3954d48edfa88b10b22dd98d5fcc0bc6c6ab7..18c06bbaf1367ae1f1284b76e708007482b8cbf1 100644 (file)
@@ -1076,12 +1076,6 @@ retry_locked:
        /* past end of file? */
        i_size = inode->i_size;   /* caller holds i_mutex */
 
-       if (i_size + len > inode->i_sb->s_maxbytes) {
-               /* file is too big */
-               r = -EINVAL;
-               goto fail;
-       }
-
        if (page_off >= i_size ||
            (pos_in_page == 0 && (pos+len) >= i_size &&
             end_in_page - pos_in_page != PAGE_CACHE_SIZE)) {
@@ -1099,9 +1093,6 @@ retry_locked:
        if (r < 0)
                goto fail_nosnap;
        goto retry_locked;
-
-fail:
-       up_read(&mdsc->snap_rwsem);
 fail_nosnap:
        unlock_page(page);
        return r;
index 5fbd0adb5724440ffc5baed0bc92b74b870c676b..7b6139004401acfdea7753652dc3f0b3d6165150 100644 (file)
@@ -1813,10 +1813,6 @@ int ceph_setattr(struct dentry *dentry, struct iattr *attr)
        if (ia_valid & ATTR_SIZE) {
                dout("setattr %p size %lld -> %lld\n", inode,
                     inode->i_size, attr->ia_size);
-               if (attr->ia_size > inode->i_sb->s_maxbytes) {
-                       err = -EINVAL;
-                       goto out;
-               }
                if ((issued & CEPH_CAP_FILE_EXCL) &&
                    attr->ia_size > inode->i_size) {
                        inode->i_size = attr->ia_size;
@@ -1896,8 +1892,6 @@ int ceph_setattr(struct dentry *dentry, struct iattr *attr)
        if (mask & CEPH_SETATTR_SIZE)
                __ceph_do_pending_vmtruncate(inode);
        return err;
-out:
-       spin_unlock(&ci->i_ceph_lock);
 out_put:
        ceph_mdsc_put_request(req);
        return err;