-
Bug
-
Resolution: Fixed
-
Medium
-
None
-
None
-
3
-
9223372036854775807
current logic is not correct
depth = inode != NULL ? ext_depth(inode) : 0;
depth = min(max(depth, 1) + 3, LDISKFS_MAX_EXTENT_DEPTH);
credits = depth;
depth can't grow by 3 in a single transaction.
rather it should be like:
depth = inode != NULL ? ext_depth(inode) : 0;
depth = min(max(depth, 1) + 1, LDISKFS_MAX_EXTENT_DEPTH);
credits = (depth-1) * 2;