limit OP_PUNCH_HOLE operations to the file size

Before punching a hole in a file, TRIM_OFF_LEN() calls
TRIM_OFF_LEN() in order to make sure the offset and size
used are in a reasonable range.  But currently the range
it's limited to is maxfilelen, which allows the offset
(and therefore offset + len) to be beyond EOF.

Later, do_punch_hole() ignores any request that starts beyond
EOF, so we might as well limit requests to the file size.

It appears that a hole punch request that starts within a
file but whose length extends beyond it is treated simply
as a hole punch up to EOF.  So there's no harm in limiting
the end of a hole punch request to the file size either.

Therefore, use TRIM_OFF_LEN() to put both the the offset
and length of a request within the file size for hole
punch requests.

Signed-off-by: Alex Elder <aelder@sgi.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>

1 file changed
tree: acf06400dae4892120ee0c15880634a55f35f823
  1. build/
  2. configs/
  3. crash/
  4. dmapi/
  5. include/
  6. lib/
  7. ltp/
  8. m4/
  9. nfs4acl/
  10. src/
  11. tools/
  12. .gitignore
  13. 001
  14. 001.out
  15. 002
  16. 002.out
  17. 003
  18. 003.out
  19. 004
  20. 004.out
  21. 005
  22. 005.out
  23. 006
  24. 006.out
  25. 007
  26. 007.out
  27. 008
  28. 008.out
  29. 009
  30. 009.out
  31. 010
  32. 010.out
  33. 011
  34. 011.out
  35. 012
  36. 012.out
  37. 013
  38. 013.out
  39. 014
  40. 014.out
  41. 015
  42. 015.out
  43. 016
  44. 016.out
  45. 017
  46. 017.out
  47. 018
  48. 018.op.irix
  49. 018.op.linux
  50. 018.out
  51. 018.trans_buf
  52. 018.trans_inode
  53. 019
  54. 019.out
  55. 020
  56. 020.out
  57. 021
  58. 021.out
  59. 022
  60. 022.out.irix
  61. 022.out.linux
  62. 023
  63. 023.out.irix
  64. 023.out.linux
  65. 024
  66. 024.out
  67. 025
  68. 025.out
  69. 026
  70. 026.out
  71. 027
  72. 027.out
  73. 028
  74. 028.out
  75. 029
  76. 029.out
  77. 030
  78. 030.out.irix
  79. 030.out.linux
  80. 031
  81. 031.out.irix
  82. 031.out.linux
  83. 032
  84. 032.out
  85. 033
  86. 033.out.irix
  87. 033.out.linux
  88. 034
  89. 034.out
  90. 035
  91. 035.out.irix
  92. 035.out.linux
  93. 036
  94. 036.out.irix
  95. 036.out.linux
  96. 037
  97. 037.out
  98. 038
  99. 038.out
  100. 039
  101. 039.out.irix
  102. 039.out.linux
  103. 040
  104. 040.good
  105. 040.out
  106. 041
  107. 041.out
  108. 042
  109. 042.out
  110. 043
  111. 043.out.irix
  112. 043.out.linux
  113. 044
  114. 044.out
  115. 045
  116. 045.out
  117. 046
  118. 046.out
  119. 047
  120. 047.out
  121. 048
  122. 048.out
  123. 049
  124. 049.out
  125. 050
  126. 050.out
  127. 051
  128. 051.out
  129. 052
  130. 052.out
  131. 053
  132. 053.out
  133. 054
  134. 054.out
  135. 055
  136. 055.out.irix
  137. 055.out.linux
  138. 056
  139. 056.out
  140. 057
  141. 057.out
  142. 058
  143. 058.out
  144. 059
  145. 060
  146. 061
  147. 061.out
  148. 062
  149. 062.out
  150. 063
  151. 063.out
  152. 064
  153. 064.out
  154. 065
  155. 065.out
  156. 066
  157. 066.out
  158. 067
  159. 067.out
  160. 068
  161. 068.out
  162. 069
  163. 069.out
  164. 070
  165. 070.out
  166. 071
  167. 071.out
  168. 072
  169. 072.out
  170. 073
  171. 073.out
  172. 074
  173. 074.out
  174. 075
  175. 075.out
  176. 076
  177. 076.out
  178. 077
  179. 077.out
  180. 078
  181. 078.out
  182. 079
  183. 079.out
  184. 080
  185. 080.out
  186. 081
  187. 081.out
  188. 081.ugquota.trans_inode
  189. 082
  190. 082.op.irix
  191. 082.op.linux
  192. 082.out
  193. 082.trans_buf
  194. 082.trans_inode
  195. 083
  196. 083.out
  197. 084
  198. 084.out
  199. 085
  200. 085.out
  201. 086
  202. 086.out
  203. 087
  204. 087.out
  205. 088
  206. 088.out.irix
  207. 088.out.linux
  208. 089
  209. 089.out
  210. 090
  211. 090.out
  212. 091
  213. 091.out
  214. 092
  215. 092.out
  216. 093
  217. 093.out
  218. 094
  219. 094.out
  220. 095
  221. 095.out
  222. 096
  223. 096.external
  224. 096.internal
  225. 097
  226. 097.out.udf
  227. 097.out.xfs
  228. 098
  229. 098.out
  230. 099
  231. 099.out
  232. 100
  233. 100.out
  234. 101
  235. 101.out
  236. 102
  237. 102.out
  238. 103
  239. 103.out
  240. 104
  241. 104.out
  242. 105
  243. 105.out
  244. 106
  245. 106.out
  246. 107
  247. 107.out
  248. 108
  249. 108.out
  250. 109
  251. 109.out
  252. 110
  253. 110.out
  254. 111
  255. 111.out
  256. 112
  257. 112.out
  258. 113
  259. 113.out
  260. 114
  261. 114.out
  262. 115
  263. 115.out
  264. 116
  265. 116.out
  266. 117
  267. 117.out
  268. 118
  269. 118.out
  270. 119
  271. 119.out
  272. 120
  273. 120.out
  274. 121
  275. 121.out
  276. 122
  277. 122.out
  278. 123
  279. 123.out
  280. 124
  281. 124.out
  282. 125
  283. 125.out
  284. 126
  285. 126.out
  286. 127
  287. 127.out
  288. 128
  289. 128.out
  290. 129
  291. 129.out
  292. 130
  293. 130.out
  294. 131
  295. 131.out
  296. 132
  297. 132.out
  298. 133
  299. 133.out
  300. 134
  301. 134.out
  302. 135
  303. 135.out
  304. 136
  305. 136.out
  306. 137
  307. 137.out
  308. 138
  309. 138.out
  310. 139
  311. 139.out
  312. 140
  313. 140.out
  314. 141
  315. 141.out
  316. 142
  317. 142.out
  318. 143
  319. 143.out
  320. 144
  321. 144.out
  322. 145
  323. 145.out
  324. 146
  325. 146.out.irix
  326. 146.out.linux
  327. 147
  328. 147.out
  329. 148
  330. 148.out
  331. 149
  332. 149.out
  333. 150
  334. 150.out
  335. 151
  336. 151.out
  337. 152
  338. 152.out
  339. 153
  340. 153.out
  341. 154
  342. 154.out
  343. 155
  344. 155.out
  345. 156
  346. 156.out
  347. 157
  348. 157.out
  349. 158
  350. 158.out
  351. 159
  352. 159.out
  353. 160
  354. 160.out
  355. 161
  356. 161.out
  357. 162
  358. 162.out
  359. 163
  360. 163.out
  361. 164
  362. 164.out
  363. 165
  364. 165.out
  365. 166
  366. 166.out
  367. 167
  368. 167.out
  369. 168
  370. 168.out
  371. 169
  372. 169.out
  373. 170
  374. 170.out
  375. 171
  376. 171.out
  377. 172
  378. 172.out
  379. 173
  380. 173.out
  381. 174
  382. 174.out
  383. 175
  384. 175.out
  385. 176
  386. 176.out
  387. 177
  388. 177.out
  389. 178
  390. 178.out
  391. 179
  392. 179.out
  393. 180
  394. 180.out
  395. 181
  396. 181.out
  397. 182
  398. 182.out
  399. 183
  400. 183.out
  401. 184
  402. 184.out
  403. 185
  404. 185.out
  405. 186
  406. 186.out
  407. 187
  408. 187.out
  409. 188
  410. 188.out
  411. 189
  412. 189.out
  413. 190
  414. 190.out
  415. 191
  416. 191.out
  417. 192
  418. 192.out
  419. 193
  420. 193.out
  421. 194
  422. 194.out
  423. 195
  424. 195.out
  425. 196
  426. 196.out
  427. 197
  428. 197.out
  429. 198
  430. 198.out
  431. 199
  432. 199.out
  433. 200
  434. 200.out
  435. 201
  436. 201.out
  437. 202
  438. 202.out
  439. 203
  440. 203.out
  441. 204
  442. 204.out
  443. 205
  444. 205.out
  445. 206
  446. 206.out
  447. 207
  448. 207.out
  449. 208
  450. 208.out
  451. 209
  452. 209.out
  453. 210
  454. 210.out
  455. 211
  456. 211.out
  457. 212
  458. 212.out
  459. 213
  460. 213.out
  461. 214
  462. 214.out
  463. 215
  464. 215.out
  465. 216
  466. 216.out
  467. 217
  468. 217.out
  469. 218
  470. 218.out
  471. 219
  472. 219.out
  473. 220
  474. 220.out
  475. 221
  476. 221.out
  477. 222
  478. 222.out
  479. 223
  480. 223.out
  481. 224
  482. 224.out
  483. 225
  484. 225.out
  485. 226
  486. 226.out
  487. 227
  488. 227.out
  489. 228
  490. 228.out
  491. 229
  492. 229.out
  493. 230
  494. 230.out
  495. 231
  496. 231.out
  497. 232
  498. 232.out
  499. 233
  500. 233.out
  501. 234
  502. 234.out
  503. 235
  504. 235.out
  505. 236
  506. 236.out
  507. 237
  508. 237.out
  509. 238
  510. 238.out
  511. 239
  512. 239.out
  513. 240
  514. 240.out
  515. 241
  516. 241.out
  517. 242
  518. 242.out
  519. 243
  520. 243.out
  521. 244
  522. 244.out
  523. 245
  524. 245.out
  525. 246
  526. 246.out
  527. 247
  528. 247.out
  529. 248
  530. 248.out
  531. 249
  532. 249.out
  533. 250
  534. 250.out
  535. 251
  536. 251.out
  537. 252
  538. 252.out
  539. 253
  540. 253.out
  541. 254
  542. 254.out
  543. 255
  544. 255.out
  545. 256
  546. 256.out
  547. 257
  548. 257.out
  549. 258
  550. 258.out
  551. 259
  552. 259.out
  553. 260
  554. 260.out
  555. 261
  556. 261.out
  557. 262
  558. 262.out
  559. 263
  560. 263.out
  561. aclocal.m4
  562. bench
  563. check
  564. common
  565. common.attr
  566. common.bonnie
  567. common.config
  568. common.dbench
  569. common.defrag
  570. common.dmapi
  571. common.dump
  572. common.filestreams
  573. common.filter
  574. common.log
  575. common.metaperf
  576. common.punch
  577. common.quota
  578. common.rc
  579. common.repair
  580. configure.in
  581. group
  582. install-sh
  583. lsqa.pl
  584. make_irix
  585. Makefile
  586. Makepkgs
  587. new
  588. randomize.awk
  589. README
  590. README.device-mapper
  591. remake
  592. run.bonnie_io
  593. run.bonnie_ops
  594. run.dbench
  595. run.dbench10
  596. run.dbench100
  597. run.dbench2
  598. run.dbench20
  599. run.dbench50
  600. run.dbenchmulti
  601. run.io
  602. run.metaperf_10i_1000n
  603. run.metaperf_10i_1n
  604. run.metaperf_1i_1n
  605. run.pio
  606. run.rtio
  607. run.tar
  608. setup
  609. soak
  610. VERSION