int release = 0, dirtied = 0;
int mask = 0;
int err = 0;
- int queue_trunc = 0;
if (ceph_snap(inode) != CEPH_NOSNAP)
return -EROFS;
if ((issued & CEPH_CAP_FILE_EXCL) &&
attr->ia_size > inode->i_size) {
inode->i_size = attr->ia_size;
- if (attr->ia_size < inode->i_size) {
- ci->i_truncate_size = attr->ia_size;
- ci->i_truncate_pending++;
- queue_trunc = 1;
- }
inode->i_blocks =
(attr->ia_size + (1 << 9) - 1) >> 9;
inode->i_ctime = attr->ia_ctime;
release &= issued;
spin_unlock(&inode->i_lock);
- if (queue_trunc)
- __ceph_do_pending_vmtruncate(inode);
-
if (mask) {
req->r_inode = igrab(inode);
req->r_inode_drop = release;