Quellcode durchsuchen

ceph: fscache: Update object store limit after file writing

Synchronize object->store_limit[_l] with new inode->i_size after file writing.

Tested-by: Milosz Tanski <milosz@adfin.com>
Signed-off-by: Yunchuan Wen <yunchuanwen@ubuntukylin.com>
Signed-off-by: Min Chen <minchen@ubuntukylin.com>
Signed-off-by: Li Wang <liwang@ubuntukylin.com>
Yunchuan Wen vor 11 Jahren
Ursprung
Commit
32d3e148dd
1 geänderte Dateien mit 3 neuen und 0 gelöschten Zeilen
  1. 3 0
      fs/ceph/file.c

+ 3 - 0
fs/ceph/file.c

@@ -970,6 +970,7 @@ retry_snap:
 			goto retry_snap;
 			goto retry_snap;
 		}
 		}
 	} else {
 	} else {
+		loff_t old_size = inode->i_size;
 		/*
 		/*
 		 * No need to acquire the i_truncate_mutex. Because
 		 * No need to acquire the i_truncate_mutex. Because
 		 * the MDS revokes Fwb caps before sending truncate
 		 * the MDS revokes Fwb caps before sending truncate
@@ -980,6 +981,8 @@ retry_snap:
 		written = generic_file_buffered_write(iocb, iov, nr_segs,
 		written = generic_file_buffered_write(iocb, iov, nr_segs,
 						      pos, &iocb->ki_pos,
 						      pos, &iocb->ki_pos,
 						      count, 0);
 						      count, 0);
+		if (inode->i_size > old_size)
+			ceph_fscache_update_objectsize(inode);
 		mutex_unlock(&inode->i_mutex);
 		mutex_unlock(&inode->i_mutex);
 	}
 	}