3 * See https://wiki.whamcloud.com/display/PUB/Lustre+Support+Matrix
4 for currently supported client and server kernel versions.
5 * Server known to build on the following kernels (others may also work):
6 2.6.32-696.18.7.el6 (RHEL6.9)
7 3.10.0-862.14.4.el7 (RHEL7.5)
8 3.10.0-957.1.3.el7 (RHEL7.6)
9 4.4.120-92.70 (SLES12 SP2)
10 4.4.162-94.69 (SLES12 SP3)
11 4.4.0-131 (Ubuntu 16.04)
12 4.15.0-32 (Ubuntu 18.04)
13 vanilla linux 4.6.7 (ZFS only)
14 * ldiskfs needs an ldiskfs patch series for that kernel, ZFS does not
15 * Client known to build on unpatched kernels (others may also work):
16 2.6.32-696.18.7.el6 (RHEL6.9)
17 2.6.32-754.6.3.el6 (RHEL6.10)
18 3.10.0-862.14.4.el7 (RHEL7.5)
19 3.10.0-957.1.3.el7 (RHEL7.6)
20 4.14.0-49.13.1.el7a (RHEL7.5)
21 4.14.0-115.2.2.el7a (RHEL7.6)
22 4.4.120-92.70 (SLES12 SP2)
23 4.4.162-94.69 (SLES12 SP3)
24 4.12.14-95.6 (SLES12 SP4)
25 4.4.0-131 (Ubuntu 16.04)
26 4.15.0-32 (Ubuntu 18.04)
27 vanilla linux 4.15.0 (ZFS only)
28 * Recommended e2fsprogs version: 1.44.3.wc1 or newer
29 * Recommended ZFS / SPL version: 0.7.12
30 * Tested with ZFS / SPL version: 0.7.12
31 * NFS export disabled when stack size < 8192 (32-bit Lustre clients),
32 since the NFSv4 export of Lustre filesystem with 4K stack may cause a
33 stack overflow. For more information, please refer to bugzilla 17630.
34 * NFSv4 reexport to 32-bit NFS client nodes requires Lustre client on
35 the re-exporting nodes to be mounted with "32bitapi" mount option
36 * Note for Ubuntu 14.04.5:
37 The 4.4.0 series is the HWE Kernel derived from 16.04 (Xenial).
38 See: https://wiki.ubuntu.com/Kernel/LTSEnablementStack
40 --------------------------------------------------------------------------------
44 * See https://wiki.whamcloud.com/display/PUB/Lustre+Support+Matrix
45 for currently supported client and server kernel versions.
46 * Server known to build on the following kernels (others may also work):
47 2.6.32-696.18.7.el6 (RHEL6.9)
48 3.10.0-862.14.4.el7 (RHEL7.5)
49 3.10.0-957.el7 (RHEL7.6)
50 4.4.120-92.70 (SLES12 SP2)
51 4.4.162-94.69 (SLES12 SP3)
52 4.4.0-131 (Ubuntu 16.04)
53 4.15.0-32 (Ubuntu 18.04)
54 vanilla linux 4.6.7 (ZFS only)
55 * ldiskfs needs an ldiskfs patch series for that kernel, ZFS does not
56 * Client known to build on unpatched kernels (others may also work):
57 2.6.32-696.18.7.el6 (RHEL6.9)
58 2.6.32-754.6.3.el6 (RHEL6.10)
59 3.10.0-862.14.4.el7 (RHEL7.5)
60 3.10.0-957.el7 (RHEL7.6)
61 4.14.0-49.13.1.el7a (RHEL7.5)
62 4.14.0-115.2.2.el7a (RHEL7.6)
63 4.4.120-92.70 (SLES12 SP2)
64 4.4.162-94.69 (SLES12 SP3)
65 4.4.0-131 (Ubuntu 16.04)
66 4.15.0-32 (Ubuntu 18.04)
67 vanilla linux 4.15.0 (ZFS only)
68 * Recommended e2fsprogs version: 1.44.3.wc1 or newer
69 * Recommended ZFS / SPL version: 0.7.9
70 * Tested with ZFS / SPL version: 0.7.9
71 * NFS export disabled when stack size < 8192 (32-bit Lustre clients),
72 since the NFSv4 export of Lustre filesystem with 4K stack may cause a
73 stack overflow. For more information, please refer to bugzilla 17630.
74 * NFSv4 reexport to 32-bit NFS client nodes requires Lustre client on
75 the re-exporting nodes to be mounted with "32bitapi" mount option
76 * Note for Ubuntu 14.04.5:
77 The 4.4.0 series is the HWE Kernel derived from 16.04 (Xenial).
78 See: https://wiki.ubuntu.com/Kernel/LTSEnablementStack
80 --------------------------------------------------------------------------------
83 2018-04-03 Intel Corporation
85 * See https://wiki.whamcloud.com/display/PUB/Lustre+Support+Matrix
86 for currently supported client and server kernel versions.
87 * Server known to build on patched kernels:
88 2.6.32-431.29.2.el6 (RHEL6.5)
89 2.6.32-504.30.3.el6 (RHEL6.6)
90 2.6.32-573.26.1.el6 (RHEL6.7)
91 2.6.32-642.15.1.el6 (RHEL6.8)
92 2.6.32-696.18.7.el6 (RHEL6.9)
93 3.10.0-693.21.1.el7 (RHEL7.4)
94 3.0.101-0.47.71 (SLES11 SP3)
95 3.0.101-107 (SLES11 SP4)
96 3.12.74-60.64.40 (SLES12 SP1)
97 4.4.114-92.64 (SLES12 SP2)
98 4.4.114-94.11 (SLES12 SP3)
99 3.13.0-101 (Ubuntu 14.04, ZFS only)
100 4.4.0-85.108 (Ubuntu 14.04.5 LTS)
101 4.4.0-116 (Ubuntu 16.04)
102 vanilla linux 4.6.7 (ZFS only)
103 * Client known to build on unpatched kernels:
104 2.6.32-431.29.2.el6 (RHEL6.5)
105 2.6.32-504.30.3.el6 (RHEL6.6)
106 2.6.32-573.26.1.el6 (RHEL6.7)
107 2.6.32-642.15.1.el6 (RHEL6.8)
108 2.6.32-696.18.7.el6 (RHEL6.9)
109 3.10.0-693.21.1.el7 (RHEL7.4)
110 3.0.101-0.47.71 (SLES11 SP3)
111 3.0.101-107 (SLES11 SP4)
112 3.12.74-60.64.40 (SLES12 SP1)
113 4.4.114-92.64 (SLES12 SP2)
114 4.4.114-94.11 (SLES12 SP3)
115 3.13.0-101 (Ubuntu 14.04)
116 4.4.0-85.108 (Ubuntu 14.04.5 LTS)
117 4.4.0-116 (Ubuntu 16.04)
119 * Recommended e2fsprogs version: 1.42.13.wc6 or newer
120 * Recommended ZFS / SPL version: 0.7.6
121 * Tested with ZFS / SPL version: 0.7.6
122 * NFS export disabled when stack size < 8192 (32-bit Lustre clients),
123 since the NFSv4 export of Lustre filesystem with 4K stack may cause a
124 stack overflow. For more information, please refer to bugzilla 17630.
125 * NFSv4 reexport to 32-bit NFS client nodes requires Lustre client on
126 the re-exporting nodes to be mounted with "32bitapi" mount option
127 * Note for Ubuntu 14.04.5:
128 The 4.4.0 series is the HWE Kernel derived from 16.04 (Xenial).
129 See: https://wiki.ubuntu.com/Kernel/LTSEnablementStack
131 --------------------------------------------------------------------------------
133 2017-07-05 Intel Corporation
135 * See https://wiki.whamcloud.com/display/PUB/Lustre+Support+Matrix
136 for currently supported client and server kernel versions.
137 * Server known to build on patched kernels:
138 2.6.32-431.29.2.el6 (RHEL6.5)
139 2.6.32-504.30.3.el6 (RHEL6.6)
140 2.6.32-573.26.1.el6 (RHEL6.7)
141 2.6.32-642.15.1.el6 (RHEL6.8)
142 2.6.32-696.3.1.el6 (RHEL6.9)
143 3.10.0-514.21.1.el7 (RHEL7.3)
144 3.0.101-0.47.71 (SLES11 SP3)
145 3.0.101-100 (SLES11 SP4)
146 3.12.74-60.64.40 (SLES12 SP1)
147 4.4.59-92.17 (SLES12 SP2)
148 vanilla linux 4.6.7 (ZFS only)
149 * Client known to build on unpatched kernels:
150 2.6.32-431.29.2.el6 (RHEL6.5)
151 2.6.32-504.30.3.el6 (RHEL6.6)
152 2.6.32-573.26.1.el6 (RHEL6.7)
153 2.6.32-642.15.1.el6 (RHEL6.8)
154 2.6.32-696.3.1.el6 (RHEL6.9)
155 3.10.0-514.21.1.el7 (RHEL7.3)
156 3.0.101-0.47.71 (SLES11 SP3)
157 3.0.101-100 (SLES11 SP4)
158 3.12.74-60.64.40 (SLES12 SP1)
159 4.4.59-92.17 (SLES12 SP2)
161 * Recommended e2fsprogs version: 1.42.13.wc4 or newer
162 * Recommended ZFS / SPL version: 0.6.5.9
163 * Tested with ZFS / SPL version: 0.6.5.9
164 * NFS export disabled when stack size < 8192 (32-bit Lustre clients),
165 since the NFSv4 export of Lustre filesystem with 4K stack may cause a
166 stack overflow. For more information, please refer to bugzilla 17630.
167 * NFSv4 reexport to 32-bit NFS client nodes requires Lustre client on
168 the re-exporting nodes to be mounted with "32bitapi" mount option
170 --------------------------------------------------------------------------------
172 12-07-2016 Intel Corporation
174 * See https://wiki.whamcloud.com/display/PUB/Lustre+Support+Matrix
175 for currently supported client and server kernel versions.
176 * Server known to build on patched kernels:
177 2.6.32-431.29.2.el6 (RHEL6.5)
178 2.6.32-504.30.3.el6 (RHEL6.6)
179 2.6.32-573.26.1.el6 (RHEL6.7)
180 2.6.32-642.11.1.el6 (RHEL6.8)
181 3.10.0-514.el7 (RHEL7.3)
182 3.0.101-0.47.71 (SLES11 SP3)
183 3.0.101-80 (SLES11 SP4)
184 3.12.62-60.64.8 (SLES12 SP1)
185 vanilla linux 4.5.7 (ZFS only)
186 * Client known to build on unpatched kernels:
187 2.6.32-431.29.2.el6 (RHEL6.5)
188 2.6.32-504.30.3.el6 (RHEL6.6)
189 2.6.32-573.26.1.el6 (RHEL6.7)
190 2.6.32-642.11.1.el6 (RHEL6.8)
191 3.10.0-514.el7 (RHEL7.3)
192 3.0.101-0.47.71 (SLES11 SP3)
193 3.0.101-80 (SLES11 SP4)
194 3.12.62-60.64.8 (SLES12 SP1)
196 * Recommended e2fsprogs version: 1.42.13.wc5 or newer
197 * Recommended ZFS / SPL version: 0.6.5.8
198 * Tested with ZFS / SPL version: 0.6.5.8
199 * NFS export disabled when stack size < 8192 (32-bit Lustre clients),
200 since the NFSv4 export of Lustre filesystem with 4K stack may cause a
201 stack overflow. For more information, please refer to bugzilla 17630.
202 * NFSv4 reexport to 32-bit NFS client nodes requires Lustre client on
203 the re-exporting nodes to be mounted with "32bitapi" mount option
205 --------------------------------------------------------------------------------
207 02-29-2016 Intel Corporation
209 * See https://wiki.whamcloud.com/display/PUB/Lustre+Support+Matrix
210 for currently supported client and server kernel versions.
211 * Server known to build on patched kernels:
212 2.6.32-431.29.2.el6 (RHEL6.5)
213 2.6.32-504.30.3.el6 (RHEL6.6)
214 2.6.32-573.12.1.el6 (RHEL6.7)
215 3.10.0-327.3.1.el7 (RHEL7.2)
216 3.0.101-0.47.71 (SLES11 SP3)
217 3.0.101-68 (SLES11 SP4)
218 vanilla linux 4.2.1 (ZFS only)
219 * Client known to build on unpatched kernels:
220 2.6.32-431.29.2.el6 (RHEL6.5)
221 2.6.32-504.30.3.el6 (RHEL6.6)
222 2.6.32-573.12.1.el6 (RHEL6.7)
223 3.10.0-327.3.1.el7 (RHEL7.2)
224 3.0.101-0.47.71 (SLES11 SP3)
225 3.0.101-68 (SLES11 SP4)
228 * Recommended e2fsprogs version: 1.42.13.wc4 or newer
229 * Recommended ZFS / SPL version: 0.6.4.2
230 * Tested with ZFS / SPL version: 0.6.4.2
231 * NFS export disabled when stack size < 8192 (32-bit Lustre clients),
232 since the NFSv4 export of Lustre filesystem with 4K stack may cause a
233 stack overflow. For more information, please refer to bugzilla 17630.
234 * NFSv4 reexport to 32-bit NFS client nodes requires Lustre client on
235 the re-exporting nodes to be mounted with "32bitapi" mount option
237 --------------------------------------------------------------------------------
239 03-10-2015 Intel Corporation
241 * See https://wiki.whamcloud.com/display/PUB/Lustre+Support+Matrix
242 for currently supported client and server kernel versions.
243 * Server known to build on patched kernels:
244 2.6.32-431.29.2.el6 (RHEL6.5)
245 2.6.32-504.8.1.el6 (RHEL6.6)
246 3.0.101-0.46 (SLES11 SP3)
247 * Client known to build on unpatched kernels:
248 2.6.32-431.29.2.el6 (RHEL6.5)
249 2.6.32-504.8.1.el6 (RHEL6.6)
250 3.10.0-123.20.1.el7 (RHEL7)
251 3.0.101-0.46 (SLES11 SP3)
252 * Recommended e2fsprogs version: 1.42.9.wc1 or newer
253 * NFS export disabled when stack size < 8192 (32-bit Lustre clients),
254 since the NFSv4 export of Lustre filesystem with 4K stack may cause a
255 stack overflow. For more information, please refer to bugzilla 17630.
256 * NFSv4 reexport to 32-bit NFS client nodes requires Lustre client on
257 the re-exporting nodes to be mounted with "32bitapi" mount option
259 Severity : enhancement
261 Description: control OST-index in IDIF via ROCOMPAT flag.
262 Details : Introduce new flag OBD_ROCOMPAT_IDX_IN_IDIF that is stored in the
263 last_rcvd file. For new formatted OST device, it will be auto set;
264 for the case of upgrading from old OST device, you can enable it
265 via the lproc interface osd-ldiskfs.index_in_idif. With such flag
266 enabled, for new created OST-object, its IDIF-in-LMA will contain
267 the OST-index; for the existing OST-object, the OSD will convert
268 old format IDIF as new format IDIF with OST-index stored in the
269 LMA EA when accessing such OST-object or via OI scrub. Once such
270 flag is enabled, it cannot be reverted back, so the system cannot
271 be downgraded to the orignal incompatible version.
273 --------------------------------------------------------------------------------
275 07-30-2014 Intel Corporation
277 * See https://wiki.whamcloud.com/display/PUB/Lustre+Support+Matrix
278 for currently supported client and server kernel versions.
279 * Server known to build on patched kernels:
280 2.6.32-431.20.3.el6 (RHEL6.5)
281 3.0.101-0.31 (SLES11 SP3)
282 * Client known to build on unpatched kernels:
283 2.6.32-431.20.3.el6 (RHEL6.5)
284 3.0.101-0.31 (SLES11 SP3)
287 * Recommended e2fsprogs version: 1.42.9.wc1 or newer
288 * NFS export disabled when stack size < 8192 (32-bit Lustre clients),
289 since the NFSv4 export of Lustre filesystem with 4K stack may cause a
290 stack overflow. For more information, please refer to bugzilla 17630.
291 * NFSv4 reexport to 32-bit NFS client nodes requires Lustre client on
292 the re-exporting nodes to be mounted with "32bitapi" mount option
294 --------------------------------------------------------------------------------
296 10-31-2013 Intel Corporation
298 * See https://wiki.whamcloud.com/display/PUB/Lustre+Support+Matrix
299 * Server builds for kernels:
300 2.6.32-358.18.1.el6 (RHEL6.4)
301 * Client builds for unpatched kernels:
302 2.6.32-358.18.1.el6 (RHEL6.4)
303 3.0.92-0.8 (SLES11 SP3)
305 * Recommended e2fsprogs version: 1.42.7.wc2 or newer
306 * NFS export disabled when stack size < 8192 (32-bit Lustre clients),
307 since the NFSv4 export of Lustre filesystem with 4K stack may cause a
308 stack overflow. For more information, please refer to bugzilla 17630.
309 * NFSv4 reexport to 32-bit NFS client nodes requires Lustre client on
310 the re-exporting nodes to be mounted with "32bitapi" mount option
312 --------------------------------------------------------------------------------
314 05-30-2013 Intel Corporation
316 * See https://wiki.whamcloud.com/display/PUB/Lustre+Support+Matrix
317 * Server builds for kernels:
318 2.6.32-358.6.2.el6 (RHEL6.4)
319 * Client builds for unpatched kernels:
320 2.6.32-358.6.2.el6 (RHEL6.4)
321 3.0.74-0.6.6 (SLES11 SP2)
323 * Recommended e2fsprogs version: 1.42.7.wc1 or newer
324 * NFS export disabled when stack size < 8192 (32-bit Lustre clients),
325 since the NFSv4 export of Lustre filesystem with 4K stack may cause a
326 stack overflow. For more information, please refer to bugzilla 17630.
327 * NFSv4 reexport to 32-bit NFS client nodes requires Lustre client on
328 the re-exporting nodes to be mounted with "32bitapi" mount option
330 --------------------------------------------------------------------------------
332 9-30-2012 Whamcloud, Inc.
334 * See https://wiki.whamcloud.com/display/PUB/Lustre+Support+Matrix
335 * Server support for kernels:
336 2.6.32-279.5.1.el6 (RHEL6)
337 * Client support for unpatched kernels:
338 2.6.32-279.5.1.el6 (RHEL6)
340 2.6.18-238.19.1.el5 (RHEL5)
341 2.6.16.60-0.69.1 (SLES10)
342 * Recommended e2fsprogs version: 1.41.90.wc4
343 * NFS export disabled when stack size < 8192 (32-bit Lustre clients),
344 since the NFSv4 export of Lustre filesystem with 4K stack may cause a
345 stack overflow. For more information, please refer to bugzilla 17630.
346 * NFSv4 reexport to 32-bit NFS client nodes requires Lustre client on
347 the re-exporting nodes to be mounted with "32bitapi" mount option
349 Severity : enhancement
351 Description: Update RHEL6.3 kernel to 2.6.32-279.5.1.el6.
353 Severity : enhancement
355 Description: Update RHEL6.3 kernel to 2.6.32-279.2.1.el6.
357 Severity : enhancement
359 Description: Update RHEL6.2 kernel to 2.6.32-220.17.1.el6
361 Severity : enhancement
363 Description: Update RHEL6.2 kernel to 2.6.32-220.13.1.el6
365 Severity : enhancement
367 Description: Update RHEL6.2 kernel to 2.6.32-220.7.1.el6
369 --------------------------------------------------------------------------------
371 04-30-2012 Whamcloud, Inc.
373 * See https://wiki.whamcloud.com/display/PUB/Lustre+Support+Matrix
374 * Server support for kernels:
375 2.6.32-220.4.2.el6 (RHEL6)
376 * Client support for unpatched kernels:
377 2.6.32-220.4.2.el6 (RHEL6)
379 2.6.18-238.19.1.el5 (RHEL5)
380 2.6.16.60-0.69.1 (SLES10)
381 * Recommended e2fsprogs version: 1.41.90.wc4
382 * NFS export disabled when stack size < 8192 (32-bit Lustre clients),
383 since the NFSv4 export of Lustre filesystem with 4K stack may cause a
384 stack overflow. For more information, please refer to bugzilla 17630.
385 * NFSv4 reexport to 32-bit NFS client nodes requires Lustre client on
386 the re-exporting nodes to be mounted with "32bitapi" mount option
388 Severity : enhancement
390 Description: Update RHEL6.2 kernel to 2.6.32-220.4.2.el6
392 Severity : enhancement
394 Description: Update RHEL6.2 kernel to 2.6.32-220.4.1.el6
396 Severity : enhancement
398 Description: Update RHEL6.2 kernel to 2.6.32-220.el6
400 Severity : enhancement
402 Description: Update RHEL6.1 kernel to 2.6.32-131.17.1.el6
404 --------------------------------------------------------------------------------
406 09-30-2011 Whamcloud, Inc.
408 * Server support for kernels:
409 2.6.18-238.19.1.el5 (RHEL5)
410 2.6.32-131.6.1.el6 (RHEL6)
411 * Client support for unpatched kernels:
412 (see http://wiki.lustre.org/index.php?title=Patchless_Client)
413 2.6.18-238.19.1.el5 (RHEL5)
414 2.6.32-131.6.1.el6 (RHEL6)
415 2.6.29.4-167.fc11 (FC11)
416 2.6.16.60-0.69.1 (SLES10)
418 * Recommended e2fsprogs version: 1.41.90.wc3
419 * NFS export disabled when stack size < 8192. Since the NFSv4 export of
420 Lustre filesystem with 4K stack may cause a stack overflow. For more
421 information, please refer to bugzilla 17630.
422 * NFSv4 reexport requires Lustre client on the re-exporting nodes to be
423 mounted with "32bitapi" mount option
425 Severity : enhancement
426 Description: Update RHEL6.1 kernel to 2.6.32-131.6.1.el6
428 Severity : enhancement
429 Description: Update RHEL5.6 kernel to 2.6.18-238.19.1.el5
431 Severity : enhancement
432 Description: Update RHEL5.6 kernel to 2.6.18-238.9.1.el5
435 Frequency : only with SLES10
437 Description: Use OFED "KMP" provided by Novell
438 Details : SLES10 SP3 ships with OFED in a separate "KMP" package.
439 Lustre is now built against this package. That means you need to
440 install the ofed-kmp package from Novell for the patchless client.
441 Note that the ofed-kmp that Novell ships may not exactly match the
442 kernel version but should still be compatible.
444 Severity : enhancement
446 Description: Update RHEL5.5 kernel to 2.6.18-194.17.1.el5
447 Update OEL5.5 kernel to 2.6.18-194.17.1.0.1.el5.
449 --------------------------------------------------------------------------------
451 2010-07-15 Oracle, Inc.
453 * Server support for kernels:
454 2.6.18-164.11.1.el5 (RHEL 5)
455 2.6.18-164.11.1.0.1.el5 (OEL 5)
456 * Client support for unpatched kernels:
457 (see http://wiki.lustre.org/index.php?title=Patchless_Client)
458 2.6.18-164.11.1.el5 (RHEL 5),
459 2.6.18-164.11.1.0.1.el5 (OEL 5)
460 2.6.16.60-0.42.8 (SLES 10),
462 2.6.29.4-167.fc11 (FC11)
463 * Recommended e2fsprogs version: 1.41.10-sun2
465 Severity : enhancement
467 Description: Distribute lfs_migrate script with lustre
468 Details : The lfs_migrate mentioned in the manual is now included in the
469 lustre tree in lustre/scripts and will distributed in lustre RPMs.
471 Severity : enhancement
473 Description: Failover nid list added to import proc file.
475 Severity : enhancement
477 Description: "som_preview" mount option required to use SOM
478 Details : The clients will need to use som_preview mount option
482 Description: Lustre does not do 1MB IOs to HW RAID
483 Details : Bump MAX_PHYS/HW_SEGMENTS and SG_ALL to 256 in the RHEL5 kernel.
485 Severity : enhancement
487 Description: lfs quota output is not very convenient for awk/sed-parsing
488 Details : Some positions in lfs quota output table could be empty or
489 non-empty which made it hard to parse it with scripts, now
490 a dash is put instead of space where there is not supposed
495 Description: Update to OFED 1.5.1
496 Details : OFED 1.5.1 will be used in environments that don't use
497 vendor supplied OFED.
501 Description: Remove lnet. prefix from lctl params display
502 Details : Also renamed lnet.memused to lnet_memused to
507 Description: Use conf_param -d to remove permanant settings.
511 Description: Add list_param -R
512 Details : lctl list_param now supports recursive mode.
515 Bugzilla : 21829, 22312
516 Description: Fix llobdstat.
517 Details : 1. Now updating the write_bytes counter
518 2. Port script fixes from 1.8.
522 Description: decrease the usage of memory on clients.
523 Details : 1. On clients, recycle dentries and inodes unused.
524 2. Delete the code related to ll_deathrow(att 6215 in bug 1443). It
529 Description: llobdstat fix and enhancement
530 Details : add a counter to set a limit to how many samples will be returned
531 fix a wildcard in the path to limit to obdfilter stats only
535 Description: lfs check only allowed for root
536 Details : Code cleanups and added a regresion test of non-root use of
541 Description: MDS Oopses in ptlrpc_dispatch_difficult_reply()/__list_add()
542 Details : Fix hr->hr_index overload.
546 Description: Fix FIEMAP functionality.
550 Description: FC11 patchless client support added
554 Description: Update RHEL5.4 kernel to 2.6.18-164.11.1.el5 and
555 OEL5.4 kernel to 2.6.18-164.11.1.0.1.el5.
559 Description: New acc-sm script and various test-framework enhancments.
563 Description: Previously landed patch was reverted.
567 Description: Update SLES10 kernel to 2.6.16.60-0.42.8 (patchless)
571 Description: Add ldiskfs maxdirsize mount option.
575 Description: Fix mkfs.lustre support for 16TB LUNs.
579 Description: Print mmp_check_interval
580 Details : print mmp_check_interval and make it possible to abort
581 mount operation in case it takes too long.
585 Description: Add cascading_rw to lustre mpi tests.
589 Description: Store SOM data in EA.
590 Details : Also several SOM related cleanups.
594 Description: Add refcount to md_open_data
598 Description: Use refcount on lov_request_set to prevent memory corruption.
602 Description: Statahead: use parent dir's i_mutex for synchronization.
606 Description: loadgen improvements.
610 Description: Enable peer health detection in ksocklnd and ko2iblnd.
614 Description: Control DCACHE_LUSTRE_INVALID flag with MDS_INODE_LOOKCUP lock
618 Description: Fix race on obd_devcie:md_stats
622 Description: Fix SLES 11 client builds.
623 Details : Resolved uninitalized pointer gcc warnings.
627 Description: Allow non-root access for "lfs check".
628 Details : Added a check in obd_class_ioctl() for OBD_IOC_PING_TARGET.
632 Description: Clear imp_force_reconnect correctly in ptlrpc_connect_interpret()
634 Severity : enhancement
636 Description: Update kernel to RHEL5.4 2.6.18-164.6.1.el5 and
637 OEL5 2.6.18-164.6.1.0.1.el5(Both in-kernel OFED enabled).
641 Description: Sanity test_27p fails.
642 Details : OBD_FAIL_OST_ENOSPC has been moved to filter_statfs().
643 Sanity tests 27 were cleaned up and improved.
647 Description: Unify req format on client/servers
648 Details : Use new req_capsule API [almost] everywhere instead of old PTLRPC
649 buffers and swabbers approach..
654 Description: drop join file stuff.
656 Severity : enhancement
658 Description: Add 2.6.27 and SLES11 (patchless client) support
662 Description: Fix in ptlrpc_expire_one_request() to print the signed time
665 Severity : enhancement
667 Description: Build kernels (RHEL5, OEL5 and SLES10/11) using the vendor's own
670 Severity : enhancement
672 Description: Remove set_info(KEY_UNLINKED) from MDS/OSC
674 Severity : enhancement
676 Description: correctly handle big reply message.
677 Details : send LNet event if reply is bigger than buffer and adjust this buffer
682 Description: Drop unnecessary __GFP_NOMEMALLOC flag from filter_get_page()
684 Severity : enhancement
686 Description: Add support for OEL5.
690 Description: Conf-sanity.sh 50g test - deactivated OST should not cause a panic.
692 Severity : enhancement
694 Description: "weak-modules" support
695 Details : Implement "weak-modules" support which enables kernel modules
696 to be used with any kernel that implements the same kABI. In
697 order to achieve this modules are now installed in
698 /lib/modules/$(uname -r)/updates/kernel on all distributions.
702 Description: client could not reconnect to OST because of an active request.
703 Details : The client now retries to reconnect to the same server, if a
704 connect request failed with EBUSY or -EAGAIN. Test case 35b
705 conf-sanity.sh has been created.
709 Description: Don't allow make backward step on assignin osc next id.
710 Details : race between allocation next id and ll_sync thread can be cause
711 of set wrong osc next id and can be kill valid ost objects.
715 Description: Changes in raid5-large-io-rhel5.patch to calculate sectors properly
719 Description: Increase the default BLK_DEF_MAX_SECTORS value for RHEL5 and SLES11
723 Description: Error handling in osc_statfs_interpret() has been improved.
724 Details : Check in osc_statfs_interpret() for EBADR.
728 Description: Do not send statfs() requests to OSTs disabled by administrator.
729 Details : Check in lov_prep_statfs_set() for non-NULL ltd_exp.
731 Severity : enhancement
733 Description: Added sanity-quota test to for lfs(1) to work with numeric uid/gid.
735 Severity : enhancement
737 Description: Update kernel to RHEL5 2.6.18-128.7.1.el5.
739 Severity : enhancement
741 Description: Enhancement for lfs(1) command to use numeric uid/gid.
745 Description: Improved cleanup procedure for conf-sanity test_46a.
749 Description: Do not start bulk transfer, if client tried to reconnect.
750 Details : Do not start bulk transfer, if client tried to reconnect,
751 but failed due to active rpcs. Check for exp_abort_active_req
752 has been implemented.
756 Description: Prevent inconsistences between linux and lustre mount structures.
757 Details : Wait indefinitely in server_wait_finished() until mnt_count drops.
758 Make the sleep interruptible.
760 Severity : enhancement
762 Description: provide server to client comms path
763 Details : server to client communications path via new LDLM_SET_INFO rpc
767 Description: truncate starts GFP_FS allocation under transaction causing deadlock
768 Details : ldiskfs_truncate calls grab_cache_page which may start page
769 allocation under an open transaction. This may lead to
770 calling prune_icache with consequent lustre reentrance.
774 Description: send correctly lsm on open replay
775 Details : MDS is trust to LSM size on replay open, but client can set wrong size
780 Description: enable client interface failover
781 Details : When a child reconnects from another NID, properly update export
782 nid hash position and ldlm reverse import.
784 Severity : enhancement
786 Description: Communicate OST degraded/readonly state via statfs to MDS
787 Details : Flags in the statfs returned from OSTs indicate whether the
788 OST is in a degraded RAID state, or if the filesystem has
789 turned read-only after a filesystem error is detected.
794 Description: don't panic if EPROTO was hit when reading symlink
795 Details : correctly handling request reference in error cases.
797 Severity : enhancement
799 Description: Add LustreNetLink, a kernel-userspace communcation path.
801 Severity : enhancement
803 Description: Update kernel to SLES10 SP2 2.6.16.60-0.39.3.
808 Description: access to llog context before init.
809 Details : move handling CATALOGS file at osc layer and forbid access to llog
813 Frequency : rare, only when client is writing to OST on local node
815 Description: Avoid deadlock for local client writes
816 Details : Use new OBD_BRW_MEMALLOC flag to notify OST about writes in the
817 memory freeing context. This allows OST threads to set the
818 PF_MEMALLOC flag on task structures in order to allocate memory
819 from reserved pools and complete IO.
820 Use GFP_HIGHUSER for OST allocations for non-local client writes,
821 so that the OST threads generate memory pressure and allow
822 inactive pages to be reclaimed.
824 Severity : enhancement
826 Description: Update kernel to RHEL5.3 2.6.18-128.1.14.el5.
831 Description: lock ordering violation between &cli->cl_sem and _lprocfs_lock
832 Details : move ldlm namespace creation in setup phase to avoid grab
833 _lprocfs_lock with cli_sem held.
837 Description: Temporarily disable grant shrink.
838 Details : Disable the feature for debugging.
841 Frequency : only when formatting test filesystems
843 Description: Unable to run several mkfs.lustre on loop devices at the same time
844 Details : mkfs.lustre returns error 256 on the concurrent loop devices
845 formatting. The solution is to proper handle the error.
847 Severity : enhancement
849 Description: Update kernel to RHEL5.3 2.6.18-128.1.6.el5.
851 Severity : enhancement
853 Description: Update kernel to SLES10 SP2 2.6.16.60-0.37.
858 Description: resolve race between obd_disconnect and class_disconnect_exports
859 Details : if obd_disconnect will be called to already disconnected export he
860 forget release one reference and osc module can't unloaded.
862 Severity : enhancement
864 Description: Allow tuning service thread via /proc
865 Details : For each service a new
866 /proc/fs/lustre/{service}/*/thread_{min,max,started} entry is
867 created that can be used to set min/max thread counts, and get the
868 current number of running threads.
873 Descriptoin: don't return error if have partially created objects for file.
874 Details : lov_update_create_set uses set->set_success as index for created
875 objects, so if some requests will be failed, they will have hole
876 at end of array and qos_shrink_lsm for allocate correct lsm.
878 Severity : enhancement
880 Description: Update OFED support to 1.4.1
885 Description: Reduce small size read RPC
886 Details : Set read-ahead limit for every file and only do read-ahead when
887 available read-ahead pages are bigger than 1M to avoid small size
890 Severity : enhancement
892 Description: move AT tunable parameters for more consistent usage
893 Details : add AT tunables under /proc/sys/lustre, add to conf_param parsing
895 Severity : enhancement
897 Description: add lazystatfs mount option to allow statfs(2) to skip down OSTs
898 Details : allow skip disconnected ost for send statfs request and hide error
904 Description: fix racy locking of mballoc block bitmaps causing BUG
905 Details : The locking of the mballoc buddy bitmap and the in-memory
906 block bitmap was using two different spin locks in some
907 cases. This made it possible to incorrectly access the
908 mballoc bitmap while another process was modifying it,
909 causing a sanity assertion to fail. While no on-disk corruption
910 was reported, there was some risk of this happening.
913 Frequency : rare, on llog test 6
915 Descriptoin: don't allow connect to already connected import
916 Details : allowing connect to already connected import is hide connecting problem.
921 Descriptoin: allow kill process which wait statahead result
922 Details : for some reasons 'ls' can stick in waiting result from statahead,
923 in this case need way for kill this process.
925 Severity : enhancement
927 Description: Add state history info file, enhance import info file
928 Details : Track import connection state changes in a new osc/mdc proc file;
929 add overview-type data to the osc/mdc import proc file.
931 Severity : enhancement
933 Description: MDS create should not wait for statfs RPC while holding DLM lock.
935 Severity : enhancement
937 Description: Update to RHEL5U3 kernel-2.6.18-128.1.1.el5.
942 Descriptoin: OST grant too much space to client even there are not enough space.
943 Details : Client will shrink its grant cache to OST if there are no write
944 activity over 6 mins (GRANT_SHRINK_INTERVAL), and OST will retrieve
945 this grant cache if there are already not enough avaible space
946 (left_space < total_clients * 32M).
949 Frequency : start MDS on uncleanly shutdowned MDS device
951 Descriptoin: ll_sync thread stay in waiting mds<>ost recovery finished
952 Details : stay in waiting mds<>ost recovery finished produce random bugs
953 due race between two ll_sync thread for one lov target. send
954 ACTIVATE event only if connect realy finished and import have
958 Frequency : rare, connect and disconnect target at same time
960 Descriptoin: ASSERTION(atomic_read(&imp->imp_inflight) == 0
961 Details : don't call obd_disconnect under lov_lock. this long time
962 operation and can block ptlrpcd which answer to connect request.
967 Descriptoin: don't lose wakeup for imp_recovery_waitq
968 Details : recover_import_no_retry or invalidate_import and import_close can
969 both sleep on imp_recovery_waitq, but we was send only one wakeup
973 Frequency : always with long access acl
975 Descriptoin: mds can't pack reply with long acl.
976 Details : mds don't control size of acl but they limited by reint/getattr
979 Severity : enhancement
981 Description: Update to SLES10 kernel-2.6.16.60-0.33.
983 Severity : enhancement
985 Description: Update to RHEL5 kernel-2.6.18-92.1.22.el5.
988 Frequency : start MDS on uncleanly shutdowned MDS device
990 Descriptoin: aborting recovery hang on MDS
991 Details : don't throttle destroy RPCs for the MDT.
994 Frequency : on remount
996 Description: external journal device not working after the remount
997 Details : clear dev_rdonly flag for external journal devices in
1003 Description: shutdown vs evict race
1004 Details : client_disconnect_export vs connect request race.
1005 if client will evicted at this time - we start invalidate
1006 thread without referece to import and import can be freed
1010 Frequency : rare, need acl's on inode.
1012 Description: client can't handle ost additional correctly
1013 Details : if ost was added after client connected to mds client can have
1014 hit lnet_try_match_md ... to big messages to wide striped files.
1015 in this case need teach client to handle config events about add
1016 lov target and update client max ea size at that event.
1018 Severity : enhancement
1020 Description: Changelogs
1021 Details : Changelogs are a lightweight mechanism to track filesystem
1022 metadata and namespace changes. The changelog is recorded
1023 permanently on the MDTs, and is periodically "consumed" / purged
1024 when records are no longer needed.
1026 Severity : enhancement
1028 Description: compact fld format with extents
1029 Details : Store range of seq rather than every seq in FLD. Seq
1030 controller update FLD rather than clients. In Case of CMD, mdt0
1031 has FLD, all other metadata server act as non persistent proxy
1032 for FLD queries and cache fld entries in fld cache.
1037 Description: don't skip ost target if they assigned to file
1038 Details : Drop slow OSCs if we can, but not for requested start idx.
1039 This means "if OSC is slow and it is not the requested
1040 start OST, then it can be skipped, otherwise skip it only
1041 if it is inactive/recovering/out-of-space.
1045 Description: more cleanup in mds_lov
1046 Details : not send LOV EA under replay, we can't know about they size at this
1047 time. Don't allow client connect to mds before any ost connected,
1048 for avoid problems with LOV EA size and returning EIO to client.
1050 Severity : enhancement
1052 Description: Interoperability at server side (Disk interoperability)
1054 Severity : enhancement
1056 Description: Update to RHEL5 kernel-2.6.18-92.1.17.el5.
1058 Severity : enhancement
1060 Description: Update to SLES10 SP2 kernel-2.6.16.60-0.31.
1062 Severity : enhancement
1064 Description: New client IO stack (CLIO).
1066 Severity : enhancement
1068 Description: Commit on sharing. Eliminate inter-client dependencies between
1069 uncommitted transactions by doing transaction commits.
1070 Thereby clients may recovery independently.
1073 Frequency : Create a symlink file with a very long name
1075 Description: ldlm_cancel_pack()) ASSERTION(max >= dlm->lock_count + count)
1076 Details : If there is no extra space in the request for early cancels,
1077 ldlm_req_handles_avail() returns 0 instead of a negative value.
1079 Severity : enhancement
1081 Description: Add /proc entry for import status
1082 Details : The mdc, osc, and mgc import directories now have
1083 an import directory that contains useful import data for debugging
1084 connection problems.
1086 Severity : enhancement
1088 Description: Re-disable certain /proc logging
1089 Details : Enable and disable client's offset_stats, extents_stats and
1090 extents_stats_per_process stats logging on the fly.
1093 Frequency : Only on FC kernels 2.6.22+
1095 Description: oops in statahead
1096 Details : Do not drop reference count for the dentry from VFS when lookup,
1097 VFS will do that by itself.
1099 Severity : enhancement
1101 Description: Generic /proc file permissions
1102 Details : Set /Proc file permissions in a more generic way to enable non-
1103 root users operate on some /proc files.
1107 Description: Hitting mdc_commit_close() ASSERTION
1108 Details : Properly handle request reference release in
1109 ll_release_openhandle().
1113 Description: quota recovery deadlock during mds failover
1114 Details : This patch includes att18982, att18236, att18237 in bz14840.
1116 1. fix osts hang when mds does failover with quotaon
1117 2. prevent watchdog storm when osts threads wait for the
1122 Frequency : only patchless client
1123 Description: add workaround for race between add/remove dentry from hash
1125 Severity : enhancement
1127 Description: Allow OST glimpses to return PW locks
1131 Description: LBUG when llog conf file is full
1132 Details : When llog bitmap is full, ENOSPC should be returned for plain log.
1136 Description: Prevent import from entering FULL state when server in recovery
1140 Description: service mount cannot take device name with ":"
1141 Details : Only when device name contains ":/" will mount treat it as
1147 Description: replace ptlrpcd with the statahead thread to interpret the async
1148 statahead RPC callback
1152 Frequency : on recovery
1153 Description: I/O failures after umount during fail back
1154 Details : if client reconnected to restarted server we need join to recovery
1155 instead of find server handler is changed and process self
1156 eviction with cancel all locks.
1158 Severity : enhancement
1160 Description: Update to RHEL5 kernel-2.6.18-92.1.10.el5.
1162 Severity : enhancement
1164 Description: Update to SLES10 SP2 kernel-2.6.16.60-0.27.
1166 Severity : enhancement
1168 Description: Upcall on Lustre log has been dumped
1169 Details : Allow for a user mode script to be called once a Lustre log has
1170 been dumped. It passes the filename of the dumped log to the
1171 script, the location of the script can be specified via
1172 /proc/sys/lnet/debug_log_upcall.
1177 Description: avoid idr_remove called for id which is not allocated.
1178 Details : Move assigment s_dev for clustered nfs to end of initialization,
1179 to avoid problem with error handling.
1184 Description: avoid Already found the key in hash [CONN_UNUSED_HASH] messages
1185 Details : When connection is reused this not moved from CONN_UNUSED_HASH
1186 into CONN_USED_HASH and this prodice warning when put connection
1187 again in unused hash.
1190 Severity : enhancement
1192 Description: File striping can now be set to use an arbitrary pool of OSTs.
1194 Severity : enhancement
1196 Description: Export bytes_read/bytes_write count on OSC/OST.
1200 Description: Early reply size mismatch, MGC loses connection
1201 Details : Apply the MGS_CONNECT_SUPPORTED mask at reconnect time so
1202 the connect flags are properly negotiated.
1207 Description: quotas are not honored with O_DIRECT
1208 Details : all writes with the flag O_DIRECT will use grants which leads to
1209 this problem. Now using OBD_BRW_SYNC to guard this.
1213 Description: add quota statistics
1214 Details : 1. sort out quota proc entries and proc code.
1215 2. add quota statistics
1217 Severity : enhancement
1219 Description: enable quota support for HEAD.
1223 Description: Properly propagate oinfo flags from lov to osc for statfs
1224 Details : restore missing copy oi_flags to lov requests.
1226 Severity : enhancement
1228 Description: Add man pages for llobdstat(8), llstat(8), plot-llstat(8),
1229 : l_getgroups(8), lst(8), routerstat(8)
1230 Details : included man pages for llobdstat(8), llstat(8),
1231 : plot-llstat(8), l_getgroups(8), lst(8), routerstat(8)
1233 Severity : enhancement
1235 Description: configure's --enable-quota should check the
1236 : kernel .config for CONFIG_QUOTA
1237 Details : configure is terminated if --enable-quota is passed but
1238 : no quota support is in kernel
1242 Description: Remove portals compatibility
1243 Details : Remove portals compatibility, not interoperable with releases
1248 Description: Resolve device initialization race
1249 Details : Prevent proc handler from accessing devices added to the
1250 obd_devs array but yet be intialized.
1252 Severity : enhancement
1254 Description: Update to SLES10 SP2 kernel-2.6.16.60-0.23.
1256 Severity : enhancement
1258 Description: Update to RHEL5 kernel-2.6.18-92.1.6.el5.
1263 Description: Using wrong pointer in osc_brw_prep_request
1264 Details : Access to array[-1] can produce panic if kernel compiled with
1265 CONFIG_PAGE_ALLOC enabled
1269 Description: Client runs out of low memory
1270 Details : Consider only lowmem when counting initial number of llap pages
1274 Description: *optional* service tags registration
1275 Details : if the "service tags" package is installed on a Lustre node
1276 When the filesystem is mounted, a local-node service tag will
1277 be created. See http://inventory.sun.com/ for more information
1278 about the Service Tags asset management system.
1282 Description: Kernel BUG tries to release flock
1283 Details : Lustre does not destroy flock lock before last reference goes
1284 away. So always drop flock locks when client is evicted and
1285 perform unlock regardless of successfulness of speaking to MDS.
1289 Description: add refcount protection for osc callbacks, avoid panic on shutdown
1293 Description: sanity test 65a fails if stripecount of -1 is set
1294 Details : handle -1 striping on filesystem in ll_dirstripe_verify
1299 Description: ASSERTION(CheckWriteback(page,cmd)) failed
1300 Details : badly clear PG_Writeback bit in ll_ap_completion can produce false
1303 Severity : enhancement
1305 Description: Update to RHEL5 kernel-2.6.18-53.1.21.el5.
1309 Description: do not process already freed flock
1310 Details : flock can possibly be freed by another thread before it reaches
1311 to ldlm_flock_completion_ast.
1315 Description: LBUG during stress test
1316 Details : Need properly lock accesses the flock deadlock detection list.
1320 Description: oops in page fault handler
1321 Details : kernel page fault handler can return two special 'pages' in error
1322 case, don't try dereference NOPAGE_SIGBUS and NOPAGE_OMM.
1326 Description: timeout with invalidate import.
1327 Details : ptlrpcd_check call obd_zombie_impexp_cull and wait request which
1328 should be handled by ptlrpcd. This produce long age waiting and
1329 -ETIMEOUT ptlrpc_invalidate_import and as result LASSERT.
1331 Severity : enhancement
1333 Description: Update to RHEL5 kernel-2.6.18-53.1.19.el5.
1337 Description: enable MGS and MDT services start separately
1338 Details : add a 'nomgs' option in mount.lustre to enable start a MDT with
1339 a co-located MGS without starting the MGS, which is a complement
1340 to 'nosvc' mount option.
1344 Frequency : after recovery
1345 Description: precreate to many object's after del orphan.
1346 Details : del orphan st in oscc last_id == next_id and this triger growing
1347 count of precreated objects. Set flag LOW to skip increase count
1348 of precreated objects.
1352 Frequency : rare, on clear nid stats
1353 Description: ASSERTION(client_stat->nid_exp_ref_count == 0)
1354 Details : when clean nid stats sometimes try destroy live entry,
1355 and this produce panic in free.
1359 Description: Stack overflow during MDS log replay
1360 ease stack pressure by using a thread dealing llog_process.
1364 Description: wait until IO finished before start new when do lock cancel.
1365 Details : VM protocol want old IO finished before start new, in this case
1366 need wait until PG_writeback is cleared until check dirty flag and
1367 call writepages in lock cancel callback.
1369 Severity : enhancement
1371 Description: using special macro for print time and cleanup in includes.
1375 Description: mds_mfd_close() ASSERTION(rc == 0)
1376 Details : In mds_mfd_close(), we need protect inode's writecount change
1377 within its orphan write semaphore to prevent possible races.
1381 Description: Obsolete CURRENT_SECONDS and use cfs_time_current_sec() instead.
1385 Frequency : rare, on shutdown ost
1386 Description: don't hit live lock with umount ost.
1387 Details : shrink_dcache_parent can be in long loop with destroy dentries,
1388 use shrink_dcache_sb instead.
1392 Description: don't panic with use echo client
1393 Details : echo client pass NULL as client nid pointer and this produce null
1394 pointer dereference.
1398 Description: fix build on ppc32
1399 Details : compile code with -m64 flag produce wrong object file for ppc32.
1403 Description: add message levels for liblustreapi
1407 Description: fix for occasional failure case of -ENOSPC in recovery-small tests
1408 Details : Move the 'good_osts' check before the 'total_bavail' check. This
1409 will result in an -EAGAIN and in the exit call path we call
1410 alloc_rr() which will with increasing aggressiveness attempt to
1411 aquire precreated objects on the minimum number of required OSCs.
1415 Description: Use old size assignment to avoid deadlock
1416 Details : Reverts the changes in bugs 2369 and bug 14138 that introduced
1417 the scheduling while holding a spinlock. We do not need locking
1418 for size in ll_update_inode() because size is only updated from
1419 the MDS for directories or files without objects, so there is no
1420 other place to do the update, and concurrent access to such inodes
1421 are protected by the inode lock.
1425 Description: resolve "_IOWR redefined" build error on SLES10
1429 Description: dump the memory debugging after all modules are unloaded to
1430 suppress false negative in conf_sanity test 39
1432 Severity : enhancement
1434 Description: build kernel-ib packages for OFED 1.3 in our release cycle
1439 Description: fix SLES kernel versioning
1440 Details : the kernel version for our SLES 10 kernel did not include a "-"
1441 before the "smp" at the end. while this was not a problem in
1442 general, it did mean that software trying to use the kernel
1443 version to try to detect a vendor specific kernel would fail.
1444 this was most evident by the OFED build scripts.
1448 Description: Don't update lov_desc members until making sure they are valid
1449 Details : When updating lov_desc members via proc fs, need fix their
1450 validities before doing the real update.
1454 Description: don't put request into delay list while invalidate in flight.
1455 Details : ptlrpc_delay_request sometimes put in delay list while invalidate
1456 import in flight. this produce timeout for invalidate and sometimes
1457 can cause stale data.
1461 Frequency : on ppc only
1462 Description: not convert ost objects for directory because it's not exist.
1463 Details : ll_dir_getstripe assume dirrectory has ost objects but this wrong.
1467 Description: Add FMODE_EXEC file flag for SLES10 SP1 kernel.
1469 Severity : enhancement
1471 Description: Update to support 2.6.22.14 vanilla kernel.
1475 Frequency : rare, on recovery
1476 Description: read procfs can produce deadlock in some situation
1477 Details : Holding lprocfs lock which send rpc can produce block for destroy
1478 obd objects and this also block reconnect with -EALREADY. This
1479 isn't fix all lprocfs bugs - but make it rare.
1481 Severity : enhancement
1483 Description: Update kernel to RHEL5 2.6.18-53.1.14.el5.
1486 Frequency : frequent on X2 node
1488 Description: mdc_set_open_replay_data LBUG
1489 Details : Set replay data for requests that are eligible for replay.
1493 Description: lustre_mgs: operation 101 on unconnected MGS
1494 Details : When MGC is disconnected from MGS long enough, MGS will evict the
1495 MGC, and late on MGC cannot successfully connect to MGS and a lot
1496 of the error messages complaining that MGS is not connected.
1500 Frequency : on network error
1501 Description: panic with double free request if network error
1502 Details : mdc_finish_enqueue is finish request if any network error ocuring,
1503 but it's true only for synchronus enqueue, for async enqueue
1504 (via ptlrpcd) this incorrect and ptlrpcd want finish request
1507 Severity : enhancement
1509 Description: client-side metadata stat-ahead during readdir(directory readahead)
1510 Details : perform client-side metadata stat-ahead when the client detects
1511 readdir and sequential stat of dir entries therein
1514 Frequency : on start mds
1516 Description: Implement get_info(last_id) in obdfilter.
1519 Frequency : occasional
1521 Description: Correctly check stale fid, not start epoch if ost not support SOM
1522 Details : open with flag O_CREATE need set old fid in op_fid3 because
1523 op_fid2 was overwritten with new generated fid, but mds can answer
1524 with one of these two fids and both is not stale. Setattr
1525 incorrectly started an epoch and assume will be called
1526 done_writing, but without SOM done_writing ever being called.
1529 Frequency : rare, depends on device drivers and load
1531 Description: MDS or OSS nodes crash due to stack overflow
1532 Details : Code changes in 1.8.0 increased the stack usage of some functions.
1533 In some cases, in conjunction with device drivers that use a lot
1534 of stack the MDS (or possibly OSS) service threads could overflow
1535 the stack. One change which was identified to consume additional
1536 stack has been reworked to avoid the extra stack usage.
1539 Frequency : occasional
1541 Description: Do not fail import if osc_interpret_create gets -EAGAIN
1542 Details : If osc_interpret_create got -EAGAIN it immediately exits and
1543 wakeup oscc_waitq. After wakeup oscc_wait_for_objects call
1544 oscc_has_objects and see OSC has no objests and call
1545 oscc_internal_create to resend create request.
1547 Severity : enhancement
1549 Description: Update to SLES10 SP1 latest kernel-2.6.16.54-0.2.5.
1551 Severity : enhancement
1553 Description: Update to RHEL5 latest kernel-2.6.18-53.1.13.el5.
1556 Frequency : very rare
1558 Description: Fix replay if there is an un-replied request and open
1559 Details : In some cases, older replay request will revert the
1560 mcd->mcd_last_xid on MDS which is used to record the client's
1561 latest sent request.
1563 Severity : enhancement
1565 Description: Update to RHEL5 latest kernel-2.6.18-53.1.6.el5.
1567 Severity : enhancement
1569 Description: Add rhel5 support to HEAD.
1571 Serverity : enhancement
1573 Description: Update RHEL4 kernel to 2.6.9-67.0.4.
1578 Description: Don't allow skipping OSTs if index has been specified.
1579 Details : Don't allow skipping OSTs if index has been specified, make
1580 locking in internal create lots better.
1584 Description: LBUG in ptlrpc_check_set() bad phase ebc0de00
1585 Details : access to bitfield in structure is always rounded to long
1586 and this produce problem with not atomic change any bit.
1590 Description: Lustre make rpms failed.
1591 Details : Remove ldiskfs spec file to avoids rpmbuild be confused when
1592 builds Lustre rpms from tarball.
1595 Frequency : rare on shutdown ost
1597 Description: If llog cancel was not send before clean_exports phase, this can
1598 produce deadlock in llog code.
1599 Details : If llog thread has last reference to obd and call class_import_put
1600 this produce deadlock because llog_cleanup_commit_master wait when
1601 last llog_commit_thread exited, but this never success because was
1602 called from llog_commit_thread.
1606 Description: allow userland application know is lost one of stripes.
1607 Details : fill lvb_blocks with error code on ost and return it to
1608 application if error flag found.
1612 Description: NULL lov_tgts causing MDS oops
1613 Details : more safe checks for NULL lov_tgts for avoid oops.
1615 Severity : enhancement
1617 Description: Update to RHEL4 latest kernel-2.6.9-67.0.1.EL.
1621 Descriptoin: make lov_create() will not stuck in obd_statfs_rqset()
1622 Details : If an OST is down the MDS will hang indefinitely in
1623 obd_statfs_rqset() waiting for the statfs data. While for
1624 MDS QOS usage of statfs, it should not stuck in waiting.
1626 Severity : enhancement
1628 Description: remote_acl support
1629 Details : Support ACL-based permission check for remote user.
1630 Support setfacl/getfacl for remote user with the utils
1631 "lfs {l,r}{s,g}etfacl" which follow the same parameter format as
1632 the system "{s,g}etfacl" utils.
1634 Severity : enhancement
1636 Description: Update to RHEL4 U6 kernel-2.6.9-67.EL.
1638 Severity : enhancement
1640 Description: Update to RHEL5 latest kernel-2.6.18-53.1.4.el5.
1644 Description: make mgs_setparam() handle fsname containing dash
1645 Details : fsname containing a dash does not work with lctl conf_param
1647 Severity : enhancement
1649 Description: Update to SLES10 SP1 latest kernel-2.6.16.54-0.2.3.
1651 Severity : enhancement
1653 Description: Update to RHEL5 Update-1 kernel 2.6.18-53.el5.
1657 Frequency : rare, at shutdown
1658 Description: access already free / zero obd_namespace.
1659 Details : if client_disconnect_export was called without force flag set,
1660 and exist connect request in flight, this can produce access to
1661 NULL pointer (or already free pointer) when connect_interpret
1662 store ocd flags in obd_namespace.
1666 Frequency : only at startup
1667 Description: not alloc memory with spinlock held.
1668 Details : allocation memory with GFP_KERNEL can produce sleep deadlock,
1669 if any spinlock held.
1671 Severity : enhancement
1673 Description: make lustre randomly fail allocating memory
1674 Details : Make lustre randomly failed allocating memory for testing purpose.
1676 Severity : enhancement
1678 Description: lost problems with lov objid file
1679 Details : Fixes some scability and access to not inited memory problems
1680 in work with lov objdid file.
1685 Description: lfs find does not continue on file error
1686 Details : Continue other files processing when a file/dir is absent.
1690 Description: Inconsistent usage of lustre_pack_reply()
1691 Details : Standardize the usage of lustre_pack_reply() such that it
1692 always generate a CERROR on failure.
1695 Frequency : occasional
1697 Description: MDS hang or stay in waiting lock
1698 Details : If client receive lock with CBPENDING flag ldlm need send lock
1699 cancel as separate rpc, to avoid situation when cancel request
1700 can't processed due all i/o threads stay in wait lock.
1704 Description: Update to RHEL5 kernel 2.6.18-8.1.15.el5.
1708 Description: Update to SLES10 SP1 kernel 2.6.16.53-0.16
1712 Description: Update to SLES9 kernel-2.6.5-7.287.3.
1716 Description: Update to RHEL4 latest kernel.
1718 Severity : enhancement
1720 Description: Build SLES10 patchless client fails
1721 Details : The configure was broken by run ./configure with
1722 --with-linux-obj=.... argument for patchless client. When the
1723 configure use --with-linux-obj, the LINUXINCLUDE= -Iinclude
1724 can't search header adequately. Use absolute path such as
1725 -I($LINUX)/include instead.
1729 Description: interrupt oig_wait produce painc on resend.
1730 Details : brw_redo_request can be used for resend requests from ptlrpcd and
1731 private set, and this produce situation when rq_ptlrpcd_data not
1732 copyed to new allocated request and triggered LBUG on assert
1733 req->rq_ptlrpcd_data != NULL. But this member used only for wakeup
1734 ptlrpcd set if request is changed and can be safety changed to use
1739 Description: LASSERT_{REQ,REP}SWAB macros are buggy
1740 Details : If SWAB_PARANOIA is disabled, the LASSERT_REQSWAB and
1741 LASSERT_REPSWAB macros become no-ops, which is incorrect. Drop
1742 these macros and replace them with their difinitions instead.
1746 Description: Update kernel patches for SLES10 2.6.16.53-0.8.
1747 Details : Update which_patch & target file for SLES10 latest kernel.
1750 Description: Remove client patches from SLES 10 kernel.
1751 Details : This causes SLES 10 clients to behave as patchless clients
1752 even on a Lustre-patched (server) kernel.
1754 Severity : enhancement
1756 Description: self-adjustable client's lru lists
1757 Details : use adaptive algorithm for managing client cached locks lru
1758 lists according to current server load, other client's work
1759 pattern, memory activities, etc. Both, server and client
1760 side namespaces provide number of proc tunables for controlling
1763 Severity : enhancement
1765 Description: light-weight GSS support
1766 Details : Support krb5n and krb5a mode, which keep Kerberos 5 authentication
1767 and reduce performance overhead.
1769 Severity : enhancement
1771 Description: Linux keyring support
1772 Details : Support using service of Linux keyring for Lustre GSS internal
1773 context refresh/cache mechanism.
1777 Description: Fix errors in lfs documentation
1778 Details : Fixes man pages
1782 Description: don't use GFP_* in generic Lustre code.
1783 Details : Use cfs_alloc_* functions and CFS_* flags for code portability.
1787 Description: obdclass is limited by single OBD_ALLOC(idarray)
1788 Details : replace OBD_ALLOC/OBD_FREE with OBD_VMALLOC/OBD_VFREE
1792 Description: warnings with build patchless client with vanila 2.6.19 and up
1793 Details : change old ctl_table style and replace ctl_table/ctl_table_header
1794 with cfs_sysctl_table_t/cfs_sysctl_table_header_t
1798 Frequency : Only for SLES
1799 Description: sanity_quota fail test_1
1800 Details : There are multiple occurences of $TSTUSR in SLES's /etc/group
1801 file, which makes TSTID[2] inunique.
1805 Frequency : Only for SLES9
1806 Description: Kernel patches for SLES9 2.6.5-7.286 kernel
1807 Details : Update target/ChangeLog/which_patch .
1811 Frequency : Only for test_10 in sanity-quota.sh
1812 Description: a bug in quota test code
1813 Details : checking a test flag in a wrong place
1817 Frequency : Only for test_13 in sanity-quota.sh
1818 Description: a bug in quota test script
1819 Details : shouldn't check overfull allocated quota
1823 Description: jbd statistics
1824 Details : Port older jbd statistics patch for sles10
1826 Severity : enhancement
1828 Description: Add printing inode info into message about error in writepage.
1833 Description: reply_lock_interpret crash due to race with it and lock cancel.
1834 Details : Do not replay locks that are being cancelled. Do not reference
1835 locks by their address during replay, just by their handle.
1839 Frequency : When flocks are used.
1840 Description: assertion failure in ldlm_cli_enquque_fini for non NULL lock.
1841 Details : Flock locks might destroy just granted lock if it could be merged
1842 with another existing flock, this is done in completion handler,
1843 so teach ldlm_cli_enquque_fini that this is a valid case for
1849 Description: Oops in read and write path when failing to allocate lock.
1850 Details : Check if lock allocation failed and return error back.
1854 Description: lstripe command fails for valid OST index
1855 Details : The stripe offset is compared to lov->desc.ld_tgt_count
1856 instead of lov->desc.ld_active_tgt_count.
1860 Description: sanity.sh failed test 103
1861 Details : RHEL mis-interpret setfacl "-X" param, so we won't test setfacl
1866 Description: df doesn't work properly if diskfs blocksize != 4K
1867 Details : Choose biggest blocksize of OST's as the LOV's blocksize.
1871 Description: lfs find on -1 stripe looping in lsm_lmm_verify_common()
1872 Details : Avoid lov_verify_lmm_common() on directory with -1 stripe count.
1874 Severity : enhancement
1876 Description: Adaptive timeouts
1877 Details : RPC timeouts adapt to changing server load and network
1878 conditions to reduce resend attempts and improve recovery time.
1882 Description: llapi_file_create() does not allow some changes
1883 Details : add llapi_file_open() that allows specifying the mode and
1884 open flags, and also returns an open file handle.
1888 Description: merge and cleanup kernel patches.
1889 Details : Remove mnt_lustre_list in vfs_intent-2.6-rhel4.patch.
1893 Description: Add journal checksum support.(Kernel part)
1894 Details : The journal checksum feature adds two new flags i.e
1895 JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT and
1896 JBD2_FEATURE_COMPAT_CHECKSUM. JBD2_FEATURE_CHECKSUM flag
1897 indicates that the commit block contains the checksum for
1898 the blocks described by the descriptor blocks. Now commit
1899 record can be sent to disk without waiting for descriptor
1900 blocks to be written to disk. This behavior is controlled
1901 using JBD2_FEATURE_ASYNC_COMMIT flag.
1905 Description: OSS needs mutliple precreate threads
1906 Details : Add ability to start more than one create thread per OSS.
1910 Description: Sanity.sh test_65k failed: setstripe should have succeeded
1911 Details : execute lfs setstripe on client
1915 Description: mds_obd_create error creating tmp object
1916 Details : When the user sets quota on root, llog will be affected and can't
1917 create files and write files.
1920 Frequency : Always on ia64 patchless client, and possibly others.
1922 Description: Add EXPORT_SYMBOL check for node_to_cpumask symbol.
1923 Details : This allows the patchless client to be loaded on architectures
1924 without this export.
1928 Description: RedHat Update kernel for RHEL5
1929 Details : Add the kernel config file for RHEL5.
1933 Description: RedHat Update kernel for RHEL5
1934 Details : Modify the kernel config file more closer RHEL5.
1938 Description: Build failure against Centos5 (RHEL5)
1939 Details : Define PAGE_SIZE when it isn't present.
1943 Description: test_7 on sanity-quota.sh can't be used on separate machines
1944 Details : add facet to handle it
1948 Description: "ll_intent_file_open()) lock enqueue: err: -13" with nfs
1949 Details : with NFS, the anon dentry's parent was set to itself in
1950 d_alloc_anon(), so in MDS, we use rec->ur_fid1 to find the
1951 corresponding dentry other than use rec->ur_name.
1953 Severity : enhancement
1955 Description: lfs setstripe enhancement
1956 Details : Make lfs setstripe understand 'k', 'm' and 'g' for stripe size.
1960 Description: enable data checksumming by default
1961 Details : enable checksum by default, allow --disable-checksum
1962 configure option and "-o nochecksum" mount option. Checksums
1963 can also be disabled at runtime via $LPROC/osc/*/checksum_pages.
1967 Description: lustre support for RHEL5
1968 Details : Add support for RHEL5.
1972 Description: Client eviction due to failover config
1973 Details : after a connection loss, the lustre client should attempt to
1974 reconnect to the last active server first before trying the
1975 other potential connections.
1979 Description: when mds and osts use different quota unit(32bit and 64bit),
1980 quota will be released repeatly.
1981 Details : void sending multiple quota reqs to mds, which will keep the
1982 status between the reqs.
1986 Description: osts not allocated evenly to files
1987 Details : change the condition to increase offset_idx
1990 Frequency : Always for filesystems larger than 2TB on 32-bit systems.
1992 Description: Data corruption for OSTs that are formatted larger than 2TB
1994 Details : When generating the bio request for lustre file writes the
1995 sector number would overflow a temporary variable before being
1996 used for the IO. The data reads correctly from Lustre (which
1997 will overflow in a similar manner) but other file data or
1998 filesystem metadata may be corrupted in some cases.
2002 Description: Tune the kernel for good SCSI performance.
2003 Details : Set the value of /sys/block/{dev}/queue/max_sectors_kb
2004 to the value of /sys/block/{dev}/queue/max_hw_sectors_kb
2009 Description: rewrite ext2-derived code in obdclass/uuid.c
2010 Details : rewrite inherited code (uuid parsing code from ext2 utils)
2011 from scratch preserving functionality.
2015 Description: "lfs find -obd UUID" prints directories
2016 Details : "lfs find -obd UUID" will return all directory names instead
2017 of just file names. It is incorrect because the directories
2018 do not reside on the OSTs.
2022 Description: use i_size_read and i_size_write in 2.6 port
2023 Details : replace inode->i_size access with i_size_read/write()
2026 Frequency : when removing large files
2028 Description: scheduling issue during removal of large Lustre files
2029 Details : Don't take the BKL in fsfilt_ext3_setattr() for 2.6 kernels.
2030 It causes scheduling issues when removing large files (17TB in the
2034 Frequency : only with liblustre clients on XT3
2036 Description: evictions taking too long
2037 Details : allow llrd to evict clients directly on OSTs
2040 Frequency : only on ppc
2042 Description: /proc/fs/lustre/devices broken on ppc
2043 Details : The patch as applied to 1.6.2 doesn't look correct for all arches.
2044 We should make sure the type of 'index' is loff_t and then cast
2045 explicitly as needed below. Do not assign an explicitly cast
2049 Frequency : only for rhel5
2051 Description: Kernel patches update for RHEL5 2.6.18-8.1.10.el5.
2052 Details : Modify the target file & which_kernel.
2054 Severity : enhancement
2056 Description: omit set fsid for export NFS
2057 Details : fix set/restore device id for avoid EMFILE error and mark lustre
2058 fs as FS_REQUIRES_DEV for avoid problems with generate fsid.
2062 Frequency : Always, for kernels after 2.6.16
2063 Description: Fix warning idr_remove called for id=.. which is not allocated.
2064 Details : Last kernels save old s_dev before kill super and not allow
2065 to restore from callback - restore it before call kill_anon_super.
2069 Description: buffer overruns could theoretically occur
2070 Details : llapi_semantic_traverse() modifies the "path" argument by
2071 appending values to the end of the origin string, and a
2072 overrun may occur. Adding buffer overrun check in liblustreapi.
2076 Description: Fix error on 'ls .' at the top of the Lustre mount.
2077 Details : Don't revalidate dentry if it is a root dentry.
2081 Description: Kernel patches update for RHEL4 2.6.9-55.0.6.
2082 Details : Modify vm-tunables-rhel4.patch.
2086 Description: Kernel config for 2.6.18-vanilla.
2087 Details : Modify targets/2.6-vanilla.target.in.
2088 Add config file kernel-2.6.18-2.6-vanilla-i686.config.
2089 Add config file kernel-2.6.18-2.6-vanilla-i686-smp.config.
2090 Add config file kernel-2.6.18-2.6-vanilla-x86_64.config.
2091 Add config file kernel-2.6.18-2.6-vanilla-x86_64-smp.config.
2095 Description: improve handling recoverable errors
2096 Details : if request processig with error which can be recoverable on server
2097 request should be resend, otherwise page released from cache and
2102 Description: Kernel patches update for RHEL5 2.6.18-8.1.14.el5.
2103 Details : Modify target file & which_patch.
2104 A flaw was found in the IA32 system call emulation provided
2105 on AMD64 and Intel 64 platforms. An improperly validated 64-bit
2106 value could be stored in the %RAX register, which could trigger an
2107 out-of-bounds system call table access. An untrusted local user
2108 could exploit this flaw to run code in the kernel
2109 (ie a root privilege escalation). (CVE-2007-4573).
2113 Description: O_DIRECT bypasses client statistics.
2114 Details : When running with O_DIRECT I/O, neither the client rpc_stats nor
2115 read_ahead_stats were updated. copied the stats section from
2116 osc_send_oap_rpc() into async_internal().
2120 Description: Add jbd statistics patch for RHEL5 and 2.6.18-vanilla
2124 Description: change order of libsysio includes
2125 Details : '#include sysio.h' should always come before '#include xtio.h'
2129 Description: handle "serious error: objid * already exists" more gracefully
2130 Details : If LAST_ID value on disk is smaller than the objects existing in
2131 the O/0/d* directories, it indicates disk corruption and causes an
2132 LBUG(). If the object is 0-length, then we should use the existing
2133 object. This will help to avoid a full fsck in most cases.
2135 Severity : enhancement
2137 Description: adapt the lustre_config script to support the upgrade case
2138 Details : Add "-u" option for lustre_config script to support upgrading 1.4
2139 server targets to 1.6 in parallel.
2143 Description: To avoid grant space > avaible space when the disk is almost
2144 full. Without this patch you might see the error "grant XXXX >
2145 available" or some LBUG about grant, when the disk is almost
2147 Details : In filter_check_grant, for non_grant cache write, we should
2148 check the left space by if (*left > ungranted + bytes), instead
2149 of (*left > ungranted), because only we are sure the left space
2150 is enough for another "bytes", then the ungrant space should be
2151 increase. In client, we should update cl_avail_grant only there
2152 is OBD_MD_FLGRANT in the reply.
2156 Description: Update RHEL 4 kernel to fix local root privilege escalation.
2157 Details : Update to the latest RHEL 4 kernel to fix the vulnerability
2158 described in CVE-2007-4573. This problem could allow untrusted
2159 local users to gain root access.
2162 Frequency : when using O_DIRECT and quotas
2164 Description: Incorrect file ownership on O_DIRECT output files
2165 Details : block usage reported by 'lfs quota' does not take into account
2166 files that have been written with O_DIRECT.
2171 Description: touch file failed when fs is not full
2172 Details : OST in recovery should not be discarded by MDS in alloc_qos(),
2173 otherwise we can get ENOSP while fs is not full.
2177 Description: parallel lock callbacks
2178 Details : Instead of sending blocking and completion callbacks as separated
2179 requests, adding them to a set and sending in parallel.
2182 Frequency : only for Cray XT3
2183 Bugzilla : 12829/13455
2184 Description: Changing primary group doesn't change the group lustre assigns to
2186 Details : When CRAY_XT3 is defined, the fsgid supplied by the client is
2187 overridden with the primary group provided by the group upcall,
2188 whereas the supplied fsgid can be trusted if it is in the list of
2189 supplementary groups returned by the group upcall.
2191 Severity : enhancement
2193 Description: Allow masking D_WARNING, D_ERROR messages from console
2194 Details : Console messages can now be disabled via lnet.printk.
2198 Description: User code with malformed file open parameter crashes client node
2199 Details : Before packing join_file req, all the related reference should be
2200 checked carefully in case some malformed flags cause fake
2201 join_file req on client.
2205 Description: LDLM_ENQUEUE races with LDLM_CP_CALLBACK
2206 Details : ldlm_completion_ast() assumes that a lock is granted when the req
2207 mode is equal to the granted mode. However, it should also check
2208 that LDLM_FL_CP_REQD is not set.
2212 Description: Heavy nfs access might result in deadlocks
2213 Details : After ELC code landed, it is now improper to enqueue any mds
2214 locks under och_sem, because enqueue might want to decide to
2215 cancel open locks for same inode we are holding och_sem for.
2219 Description: Client eviction while running blogbench
2220 Details : A lot of unlink operations with concurrent I/O can lead to a
2221 deadlock causing evictions. To address the problem, the number of
2222 oustanding OST_DESTROY requests is now throttled to
2223 max_rpcs_in_flight per OSC and LDLM_FL_DISCARD_DATA blocking
2224 callbacks are processed in priority.
2228 Description: enable ACLs on MDS by default
2229 Details : ACLs must be enabled on MDS by default.
2232 Frequency : PPC/PPC64 only
2234 Description: conflicts between asm-ppc64/types.h and lustre_types.h
2235 Details : fix duplicated definitions between asm-ppc64/types.h and
2236 lustre_types.h on PPC.
2239 Frequency : PPC/PPC64 only
2241 Description: asm-ppc/segment.h does not exist
2242 Details : fix compile issue on PPC.
2246 Description: better handle error messages in extents code
2249 Frequency : RHEL4 only
2251 Description: mkfs is very slow on IA64/RHEL4
2252 Details : A performance regression has been discovered in the MPT Fusion
2253 driver between versions 3.02.73rh and 3.02.99.00rh. As a
2254 consequence, we have downgraded the MPT Fusion driver in the RHEL4
2255 kernel from 3.02.99.00 to 3.02.73 until this problem is fixed.
2257 Severity : enhancement
2259 Description: SNMP support enhancement
2260 Details : Adding total number of sampled request for an MDS node in snmp
2263 Severity : enhancement
2265 Description: Optimize ldlm waiting list processing for PR extent locks
2266 Details : When processing waiting list for read extent lock and meeting read
2267 lock that is same or wider to it that is not contended, skip
2268 processing rest of the list and immediatelly return current
2269 status of conflictness, since we are guaranteed there are no
2270 conflicting locks in the rest of the list.
2274 Description: Time out and refuse to reconnect
2275 Details : When the failover node is the primary node, it is possible
2276 to have two identical connections in imp_conn_list. We must
2277 compare not conn's pointers but NIDs, otherwise we can defeat
2278 connection throttling.
2282 Description: port llog fixes from b1_6 into HEAD
2283 Details : Port llog reference couting and some llog cleanups from b1_6
2284 (bug 10800) into HEAD, for protect from panic and access to already
2285 free llog structures.
2289 Description: Detect stride IO mode in read-ahead
2290 Details : When a client does stride read, read-ahead should detect that and
2291 read-ahead pages according to the detected stride pattern.
2295 Description: data checksumming impacts single node performance
2296 Details : add support for several checksum algorithm. Currently, only CRC32
2297 and Adler-32 are supported. The checksum type can be changed on
2298 the fly via /proc/fs/lustre/osc/*/checksum_type.
2302 Description: use adler32 for page checksums
2303 Details : when available, use the Adler-32 algorithm instead of CRC32 for
2308 Description: build for x2 fails
2309 Details : fix compile issue on Cray systems.
2313 Description: Properly match for duplicate locks
2314 Details : Due to different lock order from skiplists code, we need to
2315 traverse entire list for now
2318 Frequency : only on PPC/SLES10
2320 Description: "BITS_PER_LONG is not 32 or 64" in linux/idr.h
2321 Details : On SLES10/PPC, fs.h includes idr.h which requires BITS_PER_LONG to
2322 be defined. Add a hack in mkfs_lustre.c to work around this compile
2327 Description: LASSERT on MDS when client holding flock lock dies
2328 Details : ldlm pool logic depends on number of granted locks equal to
2329 number of released locks which is not true for flock locks, so
2330 just exclude such locks from consideration.
2334 Description: MDS deadlock with many ll_sync_lov threads and I/O stalled
2335 Details : Use fsfilt_sync() for both the whole filesystem sync and
2336 individual file sync to eliminate dangerous inode locking
2337 with I_LOCK that can lead to a deadlock.
2341 Description: performance in 1.6.3
2342 Details : Force q->max_phys_segments to MAX_PHYS_SEGMENTS on SLES10 to be
2343 sure that 1MB requests are not fragmented by the block layer.
2345 Severity : enhancement
2347 Description: organize the server-side client stats on per-nid basis
2348 Details : Change the structure of stats under obdfilter and mds to
2356 The "uuid"s file would list the uuids of _active_ exports.
2357 And the clear entry is to clear all stats and stale nids.
2359 Severity : enhancement
2361 Description: eliminate client locks in face of contention
2362 Details : file contention detection and lockless i/o implementation
2363 for contended files.
2367 Description: Reinitialize optind to 0 so that interactive lfs works in all cases
2370 Frequency : very rare, if additional xattrs are used on kernels >= 2.6.12
2372 Description: MDS may lose file striping (and hence file data) in some cases
2373 Details : If there are additional extended attributes stored on the MDS,
2374 in particular ACLs, SELinux, or user attributes (if user_xattr
2375 is specified for the client mount options) then there is a risk
2376 of attribute loss. Additionally, the Lustre file striping
2377 needs to be larger than default (e.g. striped over all OSTs),
2378 and an additional attribute must be stored initially in the
2379 inode and then increase in size enough to be moved to the
2380 external attribute block (e.g. ACL growing in size) for file
2385 Description: skiplist implementation simplification
2386 Details : skiplists are used to group compatible locks on granted list
2387 that was implemented as tracking first and last lock of each
2388 lock group the patch changes that to using doubly linked lists
2392 Description: MDS LBUG: ASSERTION(!IS_ERR(dchild))
2393 Details : Change LASSERTs to client eviction (i.e. abort client's recovery)
2394 because LASSERT on both the data supplied by a client, and the
2395 data on disk is dangerous and incorrect.
2397 Severity : enhancement
2399 Description: Slow truncate/writes to huge files at high offsets.
2400 Details : Directly associate cached pages to lock that protect those pages,
2401 this allows us to quickly find what pages to write and remove
2402 once lock callback is received.
2406 Description: more ldlm soft lockups
2407 Details : In ldlm_resource_add_lock(), call to ldlm_resource_dump()
2408 starve other threads from the resource lock for a long time in
2409 case of long waiting queue, so change the debug level from
2410 D_OTHER to the less frequently used D_INFO.
2412 Severity : enhancement
2414 Description: add -gid, -group, -uid, -user options to lfs find
2418 Description: Hung threads in invalidate_inode_pages2_range
2419 Details : The direct IO path doesn't call check_rpcs to submit a new RPC
2420 once one is completed. As a result, some RPCs are stuck in the
2421 queue and are never sent.
2425 Description: filter threads hungs on waiting journal commit
2426 Details : Cleanup filter group llog code, then only filter group llog will
2427 be only created in the MDS/OST syncing process.
2431 Description: Procfs and llog threads access destoryed import sometimes.
2432 Details : Sync the import destoryed process with procfs and llog threads by
2433 the import refcount and semaphore.
2435 Severity : enhancement
2437 Description: openlock cache of b1_6 port to HEAD
2442 Description: kernel BUG at ldiskfs2_ext_new_extent_cb
2443 Details : If insertion of an extent fails, then discard the inode
2444 preallocation and free data blocks else it can lead to duplicate
2449 Description: don't always update ctime in ext3_xattr_set_handle()
2450 Details : Current xattr code updates inode ctime in ext3_xattr_set_handle.
2451 In some cases the ctime should not be updated, for example for
2452 2.0->1.8 compatibility it is necessary to delete an xattr and it
2453 should not update the ctime.
2457 Bugzilla : 15713/16362
2458 Description: Assertion in iopen_connect_dentry in 1.6.3
2459 Details : looking up an inode via iopen with the wrong generation number can
2460 populate the dcache with a disconneced dentry while the inode
2461 number is in the process of being reallocated. This causes an
2462 assertion failure in iopen since the inode's dentry list contains
2463 both a connected and disconnected dentry.
2467 Description: assertion failure in ldlm_handle2lock()
2468 Details : fix a race between class_handle_unhash() and class_handle2object()
2469 introduced in lustre 1.6.5 by bug 13622.
2474 Description: Kernel BUG: sd_iostats_bump: unexpected disk index
2475 Details : remove the limit of 256 scsi disks in the sd_iostat patch
2480 Description: oops in sd_iostats_seq_show()
2481 Details : unloading/reloading the scsi low level driver triggers a kernel
2482 bug when trying to access the sd iostat file.
2487 Description: Kernel panics during QLogic driver reload
2488 Details : REQ_BLOCK_PC requests are not handled properly in the sd iostat
2489 patch, causing memory corruption.
2494 Description: journal_dev option does not work in b1_6
2495 Details : pass mount option during pre-mount.
2497 Severity : enhancement
2499 Description: Add a FIEMAP(FIle Extent MAP) ioctl
2500 Details : FIEMAP ioctl will allow an application to efficiently fetch the
2501 extent information of a file. It can be used to map logical blocks
2502 in a file to physical blocks in the block device.
2506 Description: LDLM soft lockups - improvement
2507 Details : It is be possible to send the lock handle along with each read
2508 or write request because the client is already doing a lock match
2509 itself so there isn't any reason the OST should have to re-do that
2513 Frequency : only on Cray X2
2515 Description: X2 build failures
2516 Details : fix build failures on Cray X2.
2520 Description: xid & resent requests
2521 Details : Initialize RPC XID from clock at startup (randomly if clock is
2524 Severity : enhancement
2526 Description: Add lustre_start utility to start or stop multiple Lustre servers
2531 Description: Lustre GPF in {:ptlrpc:ptlrpc_server_free_request+373}
2532 Details : In case of memory pressure, list_del() can be called twice on
2533 req->rq_history_list, causing a kernel oops.
2537 Description: kptllnd_peer_check_sends()) ASSERTION(!in_interrupt()) failed
2538 Details : fix stack overflow in the distributed lock manager by defering
2539 export eviction after a failed AST to the elt thread instead of
2540 handling it in the dlm interpret routine.
2544 Description: Convert some comments to new format.
2545 Details : Update documenting comments to match doxygen conventions.
2549 Description: Grammar fixes.
2550 Details : A couple of trivial spelling fixes.
2554 Description: OSD_COUNTERS-mandatory
2555 Details : Make previously optional ->oti_{w,r}_locks sanity checks mandatory
2556 to simplify the code.
2560 Description: simplify cmm_device freeing logic.
2561 Details : Call cmm_device_free() in the failure path of cmm_device_alloc().
2565 Description: Add lockdep support to dt_object_operations locking interface.
2566 Details : Augment ->do_{read,write}_lock() prototypes with a `role'
2567 parameter indicating lock ordering. Update mdd code to use new
2572 Description: Introduce failloc constants for lockless IO tests.
2573 Details : Add two new failloc constants to test lockless IO. Only one of
2574 them in implemented---another is checked in yet to be landed
2579 Description: Add lockdep support for inode mutex.
2580 Details : Introduce and use new LOCK_INODE_MUTEX_PARENT() macro to be used
2581 in the situations where Lustre has to lock more than one inode
2586 Description: Add optional invariants checking support.
2587 Details : Add new LINVRNT() macro, optional on new --enable-invariants
2588 configure switch. This macro is to be used for consistency and
2589 sanity checks that are too expensive to be left in `production'
2594 Description: Zap lock->l_granted_mode with explicit LCK_MINMODE.
2595 Details : Use LCK_MINMODE rather than 0 to reset lock->l_granted_mode to
2600 Description: Add lockdep support for ldlm_lock and ldlm_resource.
2601 Details : Use spin_lock_nested() in (the only) situation where more than
2602 one ldlm_lock is locked simultaneously. Also, fix possible
2603 dead-lock in ldlm_lock_change_resource() by enforcing particular
2608 Description: Use struct ldlm_callback_suite in ldlm_lock_create().
2609 Details : Instead of specifying each ldlm_lock call-back through separate
2610 parameter, wrap them into struct ldlm_callback_suite.
2614 Description: Kill join_lru obd method and its callers.
2615 Details : CLIO uses lock weighting policy to keep locks over mmapped regions
2616 in memory---a requirement implemented through ->o_join_lru() obd
2617 method in HEAD. Remove this method and its users.
2621 Description: Add asynchronous ldlm ENQUEUE completion handler.
2622 Details : CLIO posts ENQUEUE requests asynchronously through ptlrpcd---a
2623 case that stock ldlm_completion_ast() cannot handle as it waits
2624 until lock is granted. Introduce new ldlm_completion_ast_async()
2625 for this. Also comment ldlm_completion_ast().
2629 Description: ldlm_error <-> errno conversion.
2630 Details : Add functions to map (rather arbitrary) between LDLM error codes
2631 and standard errno values. CLIO needs this to prevent LDLM specific
2632 constants from escaping ldlm and osc.
2636 Description: Kill unused ldlm_handle2lock_ns() function.
2637 Details : Kill unused ldlm_handle2lock_ns() function.
2641 Description: Add lu_ref support to ldlm_lock
2642 Details : lu_ref support for ldlm_lock and ldlm_resource. See lu_ref patch.
2643 lu_ref fields ->l_reference and ->lr_reference are added to ldlm_lock
2644 and ldlm_resource. LDLM interface has to be changed, because code that
2645 releases a reference on a lock, has to "know" what reference this is.
2646 In the most frequent case
2648 lock = ldlm_handle2lock(handle);
2650 LDLM_LOCK_PUT(lock);
2652 no changes are required. When any other reference (received _not_ from
2653 ldlm_handle2lock()) is released, LDLM_LOCK_RELEASE() has to be called
2654 instead of LDLM_LOCK_PUT().
2656 Arguably, changes are pervasive, and interface requires some discipline
2657 for proper use. On the other hand, it was very instrumental in finding
2658 a few leaked lock references.
2662 Description: Add ldlm_lock_addref_try().
2663 Details : Introduce ldlm_lock_addref_try() function (used by CLIO) that
2664 attempts to addref a lock that might be being canceled
2669 Description: Add ldlm_weigh_callback().
2670 Details : Add new ->l_weigh_ast() call-back to ldlm_lock. It is called
2671 by ldlm_cancel_shrink_policy() to estimate lock "value", instead of
2672 hard-coded `number of pages' logic.
2676 Description: Add lockdep annotations to llog code.
2677 Details : Use appropriately tagged _nested() locking calls in the places
2678 where llog takes more than one ->lgh_lock lock.
2682 Description: Add loi_kms_set().
2683 Details : Wrap kms updates into a helper function.
2687 Description: Constify instances of struct lsm_operations.
2688 Details : Constify instances of struct lsm_operations.
2692 Description: lu_conf support.
2693 Details : On a server, a file system object is uniquely identified
2694 by a fid, which is sufficient to locate and load all object
2695 state (inode). On a client, on the other hand, more data are
2696 necessary instantiate an object. Change lu_object_find() and
2697 friends to take additional `lu_conf' argument describing object.
2698 Typically this includes layout information.
2702 Description: lu_context fixes.
2703 Details : Introduce new lu_context functions that are needed on the client
2704 side, where some system threads (ptlrpcd) are shared by multiple
2705 modules, and so cannot be stopped during module shutdown.
2709 Description: Add start and stop methods to lu_device_type_operations.
2710 Details : Introduce two new methods in lu_device_type_operations, that are
2711 invoked when first instance of a given type is created and last one
2712 is destroyed respectively. This is need by CLIO.
2716 Description: Add lu_ref support to struct lu_device.
2717 Details : Add lu_ref support to lu_object and lu_device. lu_ref is used to
2718 track leaked references.
2722 Description: Introduce lu_kmem_descr.
2723 Details : lu_kmem_descr and its companion interface allow to create
2724 and destroy a number of kmem caches at once.
2728 Description: Fix lu_object finalization race.
2729 Details : Fix a race between lu_object_find() finding an object and its
2730 concurrent finalization. This race is (most likely) not possible
2731 on the server, but might happen on the client.
2735 Description: Introduce lu_ref interface.
2736 Details : lu_ref is a debugging module allowing to track references to
2737 a given object. It is quite cpu expensive, and has to be
2738 explicitly enabled with --enable-lu_ref. See usage description
2743 Description: Factor lu_site procfs stats into a separate function.
2744 Details : Separate lu_site stats printing code into a separate function
2745 that can be reused on a client.
2749 Description: Constify instances of struct {lu,dt,md}_device_operations.
2750 Details : Constify instances of struct {lu,dt,md}_device_operations.
2754 Description: Introduce struct md_site and move meta-data specific parts of
2755 struct lu_site here.
2756 Details : Move md-specific fields out of struct lu_site into special struct
2757 md_site, so that lu_site can be used on a client.
2761 Description: Kill mdd_lov_destroy().
2762 Details : Remove unused mdd code.
2766 Description: Add st_block checking to multistat.c.
2767 Details : Add st_block checking to multistat.c.
2771 Description: Add lu_ref support to struct obd_device.
2772 Details : Add lu_ref tracking to obd_device.
2776 Description: Kill obd_set_fail_loc().
2777 Details : Remove unused code.
2781 Description: Add special type for ptlrpc_request interpret functions.
2782 Details : Add lu_env parameter to ->rq_interpreter call-back. NULL is passed
2783 there. Actual usage will be in CLIO.
2787 Description: Replace RW_LOCK_UNLOCKED() macro with rwlock_init().
2788 Details : Replace RW_LOCK_UNLOCKED() with rwlock_init() as the former
2789 doesn't work with lockdep.
2793 Description: Add rwv.c test program.
2794 Details : New testing program exercising readv(2) and writev(2) (Qian).
2798 Description: Add sendfile.c test program.
2799 Details : New testing program exercising sendfile(2) (Jay).
2803 Description: Ratelimit a message that can be very frequent.
2804 Details : Ratelimit a memory allocation failure message that can
2809 Description: Use cdebug_show() in CDEBUG-style macros defined outside of libcfs.
2810 Details : Use cdebug_show() in CDEBUG-style macros defined outside of libcfs.
2814 Description: Liblustre build fixes.
2815 Details : Liblustre build fixes.
2819 Description: libcfs: add cfs_{need,cond}_resched() interface.
2820 Details : libcfs: add cfs_{need,cond}_resched() definition and
2821 implementations for Linux, NT, and liblustre.
2823 Severity : enhancement
2825 Description: More exported tunables for mballoc
2826 Details : Add support for tunable preallocation window and new tunables for
2827 large/small requests
2831 Description: Detect corruption of block bitmap and checking for preallocations
2832 Details : Checks validity of on-disk block bitmap. Also it does better
2833 checking of number of applied preallocations. When corruption is
2834 found, it turns filesystem readonly to prevent further corruptions.
2838 Description: (rw.c:1323:ll_read_ahead_pages()) ASSERTION(page_idx > ria->ria_stoff) failed
2839 Details : Once the unmatched stride IO mode is detected, shrink the stride-ahead
2840 window to 0. If it does hit cache miss, and read-pattern is still
2841 stride-io mode, does not reset the stride window, but also does not
2842 increase the stride window length in this case.
2846 Frequency : only for big-endian servers
2847 Description: Check if system is big-endian while mounting fs with extents feature
2848 Details : Mounting a filesystem with extents feature will fail on big-endian
2849 systems since ext3-based ldiskfs is not supported on big-endian
2850 systems. This can be over-riden with "bigendian_extents" mount option.
2852 Severity : enhancement
2854 Description: The root squash functionality
2855 Details : A security feature, which is to prevent users from being able
2856 to mount lustre on their desktop, run as root, and delete
2857 all of the files in the filesystem. The goal is accomplished by
2858 remapping user id (UID) and group id (GID) of the root user to
2859 a UID and GID specified by the system administartor via Lustre
2860 configuration management server (MGS). The functionality also
2861 allows to specify sets of clients for which the remapping does
2866 Description: Excessive recovery window
2867 Details : With AT enabled, the recovery window can be excessively long (6000+
2868 seconds). To address this problem, we no longer use
2869 OBD_RECOVERY_FACTOR when extending the recovery window (the connect
2870 timeout no longer depends on the service time, it is set to
2871 INITIAL_CONNECT_TIMEOUT now) and clients report the old service
2872 time via pb_service_time.
2876 Description: Watchdog triggered on MDS failover
2877 Details : enable OBD_CONNECT_MDT flag when connecting from the MDS so that
2878 the OSTs know that the MDS "UUID" can be reused for the same export
2879 from a different NID, so we do not need to wait for the export to be
2883 Frequency : rare, only if using MMP with Linux RAID
2885 Description: MMP doesn't work with Linux RAID
2886 Details : While using HA for Lustre servers with Linux RAID, it is possible
2887 that MMP will not detect multiple mounts. To make this work we
2888 need to unplug the device queue in RAID when the MMP block is being
2889 written. Also while reading the MMP block, we should read it from
2890 disk and not the cached one.
2892 Severity : enhancement
2894 Description: open file using fid
2895 Details : A file can be opened using just its fid, like
2896 <mntpt>/.lustre/fid/SEQ:OID:VER - this is needed for HSM and replication
2899 Frequency : Only in RHEL5 when mounting multiple ext3 filesystems
2902 Description: "kmem_cache_create: duplicate cache jbd_4k" error message
2903 Details : add proper locking for creation of jbd_4k slab cache
2907 Description: MMP check in ext3_remount() fails without displaying any error
2908 Details : When multiple mount protection fails during remount, proper error
2911 Severity : enhancement
2913 Description: Allow stripe size to be up to 4G-64k
2914 Details : Fix math logic to allow large stripe sizes.
2918 Description: add check for >8TB ldiskfs filesystems
2919 Details : ext3-based ldiskfs does not support greater than 8TB LUNs.
2920 Don't allow >8TB ldiskfs filesystems to be mounted without
2921 force_over_8tb mount option
2926 Descriptoin: OSS complains "too many blocks" and crashes
2927 Details : In filter_commitrw_write():
2928 1. lquota_chkquota();
2929 2. obdo_from_inode();
2930 3. lquota_pending_commit();
2931 "2." has changed uid and gid in this case, then caused
2932 lquota_chkquota() and lquota_pending_commit() to use
2933 different uid and gid. That is the root of the bug.
2937 Descriptoin: getstripe doesn't report stripe count = -1 sanely
2938 Details : Detect and print out the 'stripe count = -1' case properly.
2942 Description: Out or order replies might be lost on replay
2943 Details : In ptlrpc_retain_replayable_request if we cannot find retained
2944 request with tid smaller than one currently being added, add it
2945 to the start, not end of the list.
2947 --------------------------------------------------------------------------------
2949 2007-08-10 Cluster File Systems, Inc. <info@clusterfs.com>
2951 * Support for kernels:
2952 2.6.5-7.283 (SLES 9),
2953 2.6.9-55.EL (RHEL 4),
2954 2.6.16.46-0.14 (SLES 10),
2955 2.6.18.8 vanilla (kernel.org)
2956 * Client support for unpatched kernels:
2957 (see http://wiki.lustre.org/index.php?title=Patchless_Client)
2958 2.6.16 - 2.6.22 vanilla (kernel.org)
2959 * Due to recently discovered recovery problems, we do not recommend
2960 using patchless RHEL 4 clients with this or any earlier release.
2961 * Recommended e2fsprogs version: 1.39.cfs8
2962 * Note that reiserfs quotas are disabled on SLES 10 in this kernel.
2963 * Starting with this release, the ldiskfs backing filesystem required
2964 by Lustre is now in its own package, lustre-ldiskfs. This package
2965 should be installed. It is versioned separately from Lustre and
2966 may be released separately in future.
2970 Description: block reactivating mgc import until all deactivates complete
2971 Details : Fix race when failing back MDT/MGS to itself (testing)
2974 Frequency : at statup only
2976 Description: mds_lov_synchronize race leads to various problems
2977 Details : simultaneous MDT->OST connections at startup can cause the
2978 sync to abort, leaving the OSC in a bad state.
2980 Severity : enhancement
2982 Description: add optional extra BUILD_VERSION info
2983 Details : add a new environment variable (namely LUSTRE_VERS) which allows
2984 to override the lustre version.
2987 Frequency : 2.6.18 servers only
2989 Description: ll_kern_mount() doesn't release the module reference
2990 Details : The ldiskfs module reference count never drops down to 0
2991 because ll_kern_mount() doesn't release the module reference.
2996 Description: server LBUG when using old ost_num_threads parameter
2997 Details : Accept the old ost_num_threads parameter but warn that it
2998 is deprecated, and fix an off-by-one error that caused an LBUG.
3003 Description: Transient SCSI error results in persistent IO issue
3004 Details : iobuf->dr_error is not reinitialized to 0 between two
3008 Frequency : sometimes when underlying device returns I/O errors
3010 Description: OSTs not going read-only during write failures
3011 Details : OSTs are not remounted read-only when the journal commit threads
3012 get I/O errors because fsfilt_ext3 calls journal_start/stop()
3013 instead of the ext3 wrappers.
3017 Description: poor connect scaling with increasing client count
3018 Details : Don't run filter_grant_sanity_check for more than 100 exports
3019 to improve scaling for large numbers of clients.
3022 Frequency : SLES10 only
3024 Description: sanity-quota.sh quotacheck failed: rc = -22
3025 Details : Quotas cannot be enabled on SLES10.
3028 Frequency : liblustre clients only
3030 Description: getdirentries does not give error when run on compute nodes
3031 Details : getdirentries does not fail when the size specified as an argument
3032 is too small to contain at least one entry
3034 Severity : enhancement
3036 Description: Add LNET router traceability for debug purposes
3037 Details : If a checksum failure occurs with a router as part of the
3038 IO path, the NID of the last router that forwarded the bulk data
3039 is printed so it can be identified.
3044 Description: OST "spontaneously" evicts client; client has imp_pingable == 0
3045 Details : Due to a race condition, liblustre clients were occasionally
3046 evicted incorrectly.
3048 Severity : enhancement
3050 Description: lfs setstripe use optional parameters instead of postional
3053 Severity : enhancement
3055 Description: Nanosecond timestamp support for ldiskfs
3056 Details : The on-disk ldiskfs filesystem has added support for nanosecond
3057 resolution timestamps. There is not yet support for this at
3058 the Lustre filesystem level.
3061 Frequency : during server recovery
3063 Description: MDS failing to send precreate requests due to OSCC_FLAG_RECOVERING
3064 Details : request with rq_no_resend flag not awake l_wait_event if they get
3068 Frequency : nfs export on patchless client
3070 Description: connectathon hang when test nfs export over patchless client
3071 Details : Disconnected dentry cannot be found with lookup, so we do not need
3072 to unhash it or make it invalid
3075 Description: fix llapi_lov_get_uuids() to allow many OSTs to be returned
3076 Details: : Change llapi_lov_get_uuids() to read the UUIDs from /proc instead
3077 of using an ioctl. This allows lfsck for > 160 OSTs to succeed.
3082 Description: open req refcounting wrong on reconnect
3083 Details : If reconnect happened between getting open reply from server and
3084 call to mdc_set_replay_data in ll_file_open, we will schedule
3085 replay for unreferenced request that we are about to free.
3086 Subsequent close will crash in variety of ways.
3087 Check that request is still eligible for replay in
3088 mdc_set_replay_data().
3093 Description: disable writes to filesystem when reading health_check file
3094 Details : the default for reading the health_check proc file has changed
3095 to NOT do a journal transaction and write to disk, because this
3096 can cause reads of the /proc file to hang and block HA state
3097 checking on a healthy but otherwise heavily loaded system. It
3098 is possible to return to the previous behaviour during configure
3099 with --enable-health-write.
3101 Severity : enhancement
3103 Description: 64-bit inode version
3104 Details: : Add a on-disk 64-bit inode version for ext3 to track changes made
3105 to the inode. This will be required for version-based recovery.
3110 Description: MDS fails to start if a duplicate client export is detected
3111 Details : in some rare cases it was possible for a client to connect to
3112 an MDS multiple times. Upon recovery the MDS would detect this
3113 and fail during startup. Handle this more gracefully.
3115 Severity : enhancement
3117 Description: Add -o localflock option to simulate old noflock
3119 Details : This will achieve local-only flock/fcntl locks
3125 Description: log_commit_thread vs filter_destroy race leads to crash
3126 Details : Take import reference before releasing llog record semaphore
3131 Description: Wrong request locking in request set processing
3132 Details : ptlrpc_check_set wrongly uses req->rq_lock for proctect add to
3133 imp_delayed_list, in this place should be used imp_lock.
3136 Frequency : when reconnection
3138 Description: Grant Leak when osc reconnect to OST
3139 Details : When osc reconnect ost, OST(filter) should check whether it
3140 should grant more space to client by comparing fed_grant and
3141 cl_avail_grant, and return the granted space to client instead
3142 of "new granted" space, because client will call osc_init_grant
3143 to update the client grant space info.
3146 Frequency : when client reconnect to OST
3148 Description: Grant Leak when osc do resend and replay bulk write
3149 Details : When osc reconnect to OST, OST(filter)should clear grant info of
3150 bulk write request, because the grant info while be sync between
3151 OSC and OST when reconnect, and we should ignore the grant info
3152 these of resend/replay write req.
3157 Description: Grant space more than available left space sometimes.
3158 Details : When then OST is about to be full, if two bulk writing from
3159 different clients came to OST. Accord the avaliable space of the
3160 OST, the first req should be permitted, and the second one
3161 should be denied by ENOSPC. But if the seconde arrived before
3162 the first one is committed. The OST might wrongly permit second
3163 writing, which will cause grant space > available space.
3166 Frequency : when client is evicted
3168 Description: Grant might be wrongly erased when osc is evicted by OST
3169 Details : when the import is evicted by server, it will fork another
3170 thread ptlrpc_invalidate_import_thread to invalidate the
3171 import, where the grant will be set to 0. While the original
3172 thread will update the grant it got when connecting. So if
3173 the former happened latter, the grant will be wrongly errased
3174 because of this race.
3179 Description: Checking Stale with correct fid
3180 Details : ll_revalidate_it should uses de_inode instead of op_data.fid2
3181 to check whether it is stale, because sometimes, we want the
3182 enqueue happened anyway, and op_data.fid2 will not be initialized.
3184 Severity : enhancement
3186 Description: update patchless client
3187 Details : Add support for patchless client with 2.6.20, 2.6.21 and RHEL 5
3190 Frequency : only with 2.4 kernel
3192 Description: random memory corruption
3193 Details : size of struct ll_inode_info is to big for union inode.u and this
3194 can be cause of random memory corruption.
3199 Description: Memory leak in recovery
3200 Details : Lov_mds_md was not free in an error handler in mds_create_object.
3201 It should also check obd_fail before fsfilt_start, otherwise if
3202 fsfilt_start return -EROFS,(failover mds during mds recovery).
3203 then the req will return with repmsg->transno = 0 and rc = EROFS.
3204 and we met hit the assert LASSERT(req->rq_reqmsg->transno ==
3205 req->rq_repmsg->transno) in ptlrpc_replay_interpret. Fcc should
3206 be freed no matter whether fsfilt_commit success or not.
3209 Frequency : only with huge count clients
3211 Description: Prevents from taking the superblock lock in llap_from_page for
3213 Details : using LL_ORIGIN_REMOVEPAGE origin flag instead of LL_ORIGIN_UNKNOW
3214 for llap_from_page call in ll_removepage prevents from taking the
3215 superblock lock for a soon died page.
3220 Description: Not check open intent error before release open handle
3221 Details : in some rare cases, the open intent error is not checked before
3222 release open handle, which may cause
3223 ASSERTION(open_req->rq_transno != 0), because it tries to release
3224 the failed open handle.
3229 Description: Set cat log bitmap only after create log success.
3230 Details : in some rare cases, the cat log bitmap is set too early. and it
3231 should be set only after create log success.
3235 Description: Accessing a block bevice can re-enable I/O when Lustre is
3236 tearing down a device.
3237 Details : dev_clear_rdonly(bdev) must be called in kill_bdev() instead of
3242 Description: service threads may hog cpus when there are a lot of requests
3243 Details : Insert cond_resched to give other threads a chance to use some CPU
3248 Description: the cat log was not initialized in recovery
3249 Details : When mds(mgs) do recovery, the tgt_count might be zero, so the
3250 unlink log on mds will not be initialized until mds post
3251 recovery. And also in mds post recovery, the unlink log will
3252 initialization will be done asynchronausly, so there will be race
3253 between add unlink log and unlink log initialization.
3257 Description: brw_stats were being printed incorrectly
3258 Details : brw_stats were being printed as log2 but all of them were not
3259 recorded as log2. Also remove some code duplication arising from
3260 filter_tally_{read,write}.
3264 Frequency : rare, only in recovery.
3265 Description: ASSERTION(req->rq_type != LI_POISON) failed
3266 Details : imp_lock should be held while iterating over imp_sending_list for
3267 prevent destroy request after get timeout in ptlrpc_queue_wait.
3271 Description: replay-single.sh test 52 fails
3272 Details : A lock's skiplist need to be cleanup when it being unlinked
3273 from its resource list.
3277 Description: Short directio read returns full requested size rather than
3279 Details : Direct I/O operations should return actual amount of bytes
3280 transferred rather than requested size.
3282 Severity : enhancement
3284 Description: metadata RPC reduction (e.g. for rm performance)
3285 Details : decrease the amount of synchronous RPC between clients and servers
3286 by canceling conflicing lock before the operation on the client
3287 and packing thier handles into the main operation RPC to server.
3289 Severity : enhancement
3291 Description: Async OSC create to avoid the blocking unnecessarily.
3292 Details : If an OST has no remaining object, system will block on the
3293 creation when it needs to create a new object on this OST. Now,
3294 ways use pre-created objects when available, instead of blocking on
3295 an empty osc while others are not empty. If we must block, we
3296 block for the shortest possible period of time.
3300 Description: improve handling recoverable errors
3301 Details : if request processig with error which can be recoverable on server
3302 request should be resend, otherwise page released from cache and
3305 Severity : enhancement
3307 Description: refine locking for avoid write wrong info into lov_objid file
3308 Details : fix possible races with add new target and write/update data in
3311 --------------------------------------------------------------------------------
3313 2007-05-03 Cluster File Systems, Inc. <info@clusterfs.com>
3318 Frequency : on some architectures
3320 Description: 1.6 client sometimes fails to mount from a 1.4 MDT
3321 Details : Uninitialized flags sometimes cause configuration commands to
3325 Frequency : patchless clients only
3327 Description: missing __iget() symbol export
3328 Details : The __iget() symbol export is missing. To avoid the need for
3329 this on patchless clients the deathrow inode reaper is turned
3330 off, and we depend on the VM to clean up old inodes. This
3331 dependency was during via the fix for bug 12181.
3333 --------------------------------------------------------------------------------
3335 2007-04-19 Cluster File Systems, Inc. <info@clusterfs.com>
3337 * CONFIGURATION CHANGE. This version of Lustre WILL NOT
3338 INTEROPERATE with older versions automatically. In many cases a
3339 special upgrade step is needed. Please read the
3340 user documentation before upgrading any part of a live system.
3341 * WIRE PROTOCOL CHANGE from previous 1.6 beta versions. This
3342 version will not interoperate with 1.6 betas before beta5 (1.5.95).
3343 * WARNING: Lustre configuration and startup changes are required with
3344 this release. See https://mail.clusterfs.com/wikis/lustre/MountConf
3348 Severity : enhancement
3350 Description: MountConf
3351 Details : Lustre configuration is now managed via mkfs and mount
3352 commands instead of lmc and lconf. New obd types (MGS, MGC)
3353 are added for dynamic configuration management. See
3354 https://mail.clusterfs.com/wikis/lustre/MountConf for
3357 Severity : enhancement
3359 Description: dynamic OST addition
3360 Details : OSTs can now be added to a live filesystem
3362 Severity : enhancement
3364 Description: startup order invariance
3365 Details : MDTs and OSTs can be started in any order. Clients only
3366 require the MDT to complete startup.
3368 Severity : enhancement
3370 Description: parallel, asynchronous orphan cleanup
3371 Details : orphan cleanup is now performed in separate threads for each
3372 OST, allowing parallel non-blocking operation.
3374 Severity : enhancement
3376 Description: optimized stripe assignment
3377 Details : stripe assignments are now made based on ost space available,
3378 ost previous usage, and OSS previous usage, in order to try
3379 to optimize storage space and networking resources.
3381 Severity : enhancement
3383 Description: Permanently set tunables
3384 Details : All writable /proc/fs/lustre tunables can now be permanently
3385 set on a per-server basis, at mkfs time or on a live system.
3387 Severity : enhancement
3389 Description: Lustre message v2
3390 Details : Add lustre message format v2.
3392 Severity : enhancement
3394 Description: client OST exclusion list
3395 Details : Clients can be started with a list of OSTs that should be
3396 declared "inactive" for known non-responsive OSTs.
3400 Description: SPEC SFS validation failure on NFS v2 over lustre.
3401 Details : Changes the blocksize for regular files to be 2x RPC size,
3402 and not depend on stripe size.
3404 Severity : enhancement
3406 Description: Multiple MD RPCs in flight.
3407 Details : Further unserialise some read-only MDS RPCs - learn about intents.
3408 To avoid overly-overloading MDS, introduce a limit on number of
3409 MDS RPCs in flight for a single client and add /proc controls
3410 to adjust this limit.
3412 Severity : enhancement
3414 Description: client read/write statistics
3415 Details : Add client read/write call usage stats for performance
3416 analysis of user processes.
3417 /proc/fs/lustre/llite/*/offset_stats shows non-sequential
3418 file access. extents_stats shows chunk size distribution.
3419 extents_stats_per_process show chunk size distribution per
3422 Severity : enhancement
3424 Description: mds statistics
3425 Details : Add detailed mds operations statistics in
3426 /proc/fs/lustre/mds/*/stats.
3430 Description: Failure of copying files with lustre special EAs.
3431 Details : Client side always return success for setxattr call for lustre
3432 special xattr (currently only "trusted.lov").
3437 Description: Refcount LNET uuids
3438 Details : The global LNET uuid list grew linearly with every startup;
3439 refcount repeated list entries instead of always adding to
3442 Severity : enhancement
3444 Description: Dynamic service threads
3445 Details : Within a small range, start extra service threads
3446 automatically when the request queue builds up.
3449 Frequency : mixed-endian client/server environments
3451 Description: mixed-endian crashes
3452 Details : The new msg_v2 system had some failures in mixed-endian
3455 Severity : enhancement
3457 Description: Easy OST removal
3458 Details : OSTs can be permanently deactivated with e.g. 'lctl
3459 conf_param lustre-OST0001.osc.active=0'
3461 Severity : enhancement
3463 Description: MGS proc entries
3464 Details : Added basic proc entries for the MGS showing what filesystems
3467 Severity : enhancement
3469 Description: provide MGS failover
3470 Details : Added config lock reacquisition after MGS server failover.
3472 Severity : enhancement
3474 Description: add Linux 2.4 support
3475 Details : Added support for RHEL 2.4.21 kernel for 1.6 servers and clients
3479 Description: a large application tries to do I/O to the same resource and dies
3480 in the middle of it.
3481 Details : Check the req->rq_arrival time after the call to
3482 ost_brw_lock_get(), but before we do anything about
3483 processing it & sending the BULK transfer request. This
3484 should help move old stale pending locks off the queue as
3485 quickly as obd_timeout.
3488 Frequency : when an incorrect nid is specified during startup
3490 Description: ptlrpc connect to non-existant node causes kernel crash
3491 Details : LNET can't be re-entered from an event callback, which
3492 happened when we expire a message after the export has been
3493 cleaned up. Instead, hand the zombie cleanup off to another
3496 Severity : enhancement
3498 Description: plain/inodebits lock performance improvement
3499 Details : Grouping plain/inodebits in granted list by their request modes
3500 and bits policy, thus improving the performance of search through
3504 Frequency : only if OST filesystem is corrupted
3506 Description: client incorrectly hits assertion in ptlrpc_replay_req()
3507 Details : for a short time RPCs with bulk IO are in the replay list,
3508 but replay of bulk IOs is unimplemented. If the OST filesystem
3509 is corrupted due to disk cache incoherency and then replay is
3510 started it is possible to trip an assertion. Avoid putting
3511 committed RPCs into the replay list at all to avoid this issue.
3514 Frequency : liblustre (e.g. catamount) on a large cluster with >= 8 OSTs/OSS
3516 Description: System hang on startup
3517 Details : This bug allowed the liblustre (e.g. catamount) client to
3518 return to the app before handling all startup RPCs. This
3519 could leave the node unresponsive to lustre network traffic
3520 and manifested as a server ptllnd timeout.
3522 Severity : enhancement
3524 Description: Add "/proc/sys/lustre/debug_peer_on_timeout"
3525 Details : liblustre envirable: LIBLUSTRE_DEBUG_PEER_ON_TIMEOUT
3526 boolean to control whether to print peer debug info when a
3527 client's RPC times out.
3530 Frequency : only for kernels with patches from Lustre below 1.4.3
3532 Description: Remove old rdonly API
3533 Details : Remove old rdonly API which unused from at least lustre 1.4.3
3536 Frequency : only for devices with external journals
3538 Description: Set external device read-only also
3539 Details : During a commanded failover stop, we set the disk device
3540 read-only while the server shuts down. We now also set any
3541 external journal device read-only at the same time.
3544 Frequency : when upgrading from 1.4 while trying to change parameters
3546 Description: The wrong (new) MDC name was used when setting parameters for
3547 upgraded MDT's. Also allows changing of OSC (and MDC)
3548 parameters if --writeconf is specified at tunefs upgrade time.
3551 Frequency : when setting specific ost indicies
3553 Description: QOS code breaks on skipped indicies
3554 Details : Add checks for missing OST indicies in the QOS code, so OSTs
3555 created with --index need not be sequential.
3557 Severity : enhancement
3559 Description: Add uninit_groups feature to ldiskfs2 to speed up e2fsck
3560 Details : The uninit_groups feature works in conjunction with the kernel
3561 filesystem code (ldiskfs2 only) and e2fsprogs-1.39-cfs6 to speed
3562 up the pass1 processing of e2fsck. This is a read-only feature
3563 in ldiskfs2 only, so older kernels and current ldiskfs cannot
3564 mount filesystems that have had this feature enabled.
3566 Severity : enhancement
3568 Description: Improve multi-block allocation algorithm to avoid fragmentation
3569 Details : The mballoc3 code (ldiskfs2 only) adds new mechanisms to improve
3570 allocation locality and avoid filesystem fragmentation.
3572 ------------------------------------------------------------------------------
3574 2007-04-01 Cluster File Systems, Inc. <info@clusterfs.com>
3576 * Support for kernels:
3577 2.4.21-47.0.1.EL (RHEL 3)
3578 2.6.5-7.283 (SLES 9)
3579 2.6.9-42.0.10.EL (RHEL 4)
3580 2.6.12.6 vanilla (kernel.org)
3581 2.6.16.27-0.9 (SLES 10)
3582 * Recommended e2fsprogs version: 1.39.cfs5
3584 * Note that reiserfs quotas are disabled on SLES 10 in this kernel
3588 Frequency : occasional, depends on client load and configuration
3589 Bugzilla : 12181, 12203
3590 Description: data loss for recently-modified files
3592 Details : In some cases it is possible that recently written or created
3593 files may not be written to disk in a timely manner (this should
3594 normally be within 30s unless client IO load is very high).
3595 The problem appears as zero-length files or files that are a
3596 multiple of 1MB in size after a client crash or client eviction
3597 that are missing data at the end of the file.
3599 This problem is more likely to be hit on clients where files are
3600 repeatedly created and unlinked in the same directory, clients
3601 have a large amount of RAM, have many CPUs, the filesystem has
3602 many OSTs, the clients are rebooted frequently, and/or the files
3603 are not accessed by other nodes after being written.
3605 The presence of the problem can be detected by looking at
3606 /proc/sys/fs/inode-state. If the first number (nr_inodes) is
3607 smaller than the second (nr_unused) then dirty files will not
3608 be flushed automatically to disk. "sync; sleep 10" should be
3609 run several times on the node before unmounting it to update
3610 Lustre (this is also safe to run on nodes without this problem).
3612 There is also a related kernel bug in the RHEL4 4 2.6.9 kernel
3613 that can cause this same problem, so customers using that kernel
3614 also need to update the kernel in addition to Lustre. In order
3615 to properly fix this bug, the RHEL3 2.4.21 kernel is also updated.
3617 It is normal that files written just before a client crash (less
3618 than 30s) may not yet have been flushed to disk, even for local
3622 Frequency : frequent on thin XT3 nodes
3624 Description: UUID collision on thin XT3 Linux nodes
3625 Details : UUIDs on Compute Node Linux XT3 nodes were not generated
3626 randomly, since we relied on an insufficiently-seeded PRNG.
3631 Description: OSS hangs after "All ost request buffers busy"
3632 Details : A deadlock between quota and journal operations caused OSS
3633 hangs after printing "All ost request buffers busy."
3636 Frequency : always on liblustre builds
3638 Description: Cleanup compiler warnings on liblustre
3641 Frequency : always on liblustre builds on XT3
3643 Description: LC_CONFIG_CDEBUG don't run while build liblustre on XT3.
3647 Description: Addition of EXT3_FEATURE_RO_COMPAT_DIR_NLINKS flag for
3648 > 32000 subdirectories
3649 Details : Add EXT3_FEATURE_RO_COMPAT_DIR_NLINK flag to
3650 EXT3_FEATURE_RO_COMPAT_SUPP. This flag will be set whenever
3651 subdirectory count crosses 32000. This will aid e2fsck to
3652 correctly handle more than 32000 subdirectories.
3655 Frequency : liblustre (e.g. catamount) on a large cluster with >= 8 OSTs/OSS
3657 Description: System hang on startup
3658 Details : This bug allowed the liblustre (e.g. catamount) client to
3659 return to the app before handling all startup RPCs. This
3660 could leave the node unresponsive to lustre network traffic
3661 and manifested as a server ptllnd timeout.
3663 Severity : enhancement
3665 Description: Add "/proc/sys/lustre/debug_peer_on_timeout"
3666 (liblustre envirable: LIBLUSTRE_DEBUG_PEER_ON_TIMEOUT)
3667 boolean to control whether to print peer debug info when a
3668 client's RPC times out.
3673 Description: make O_SYNC working on 2.6 kernels
3674 Details : 2.6 kernels use different method for mark pages for write,
3675 so need add a code to lustre for O_SYNC work.
3680 Description: Failure to close file and release space on NFS
3681 Details : Put inode details into lock acquired in ll_intent_file_open.
3682 Use mdc_intent_lock in ll_intent_open to properly
3683 detect all kind of errors unhandled by mdc_enqueue.
3688 Description: proc file read during shutdown sometimes raced obd removal,
3690 Details : Add lock to prevent obd access after proc file removal.
3693 Frequency : Only for files larger than 4GB on 32-bit clients.
3695 Description: improperly doing page alignment of locks
3696 Details : Modify lustre core code to use CFS_PAGE_* defines instead of
3697 PAGE_*. Make CFS_PAGE_MASK a 64-bit mask.
3702 Description: RPCs being resent when they shouldn't be
3703 Details : Some RPCs that should not be resent are being resent. This
3704 can cause inconsistencies in the RPC state machine. Do not
3705 resend such requests.
3708 Frequency : rare, only with NFS export
3710 Description: Crash on NFS re-export node
3711 Details : under very unusual load conditions an assertion is hit in
3712 ll_intent_file_open()
3715 Frequency : only if OST filesystem is corrupted
3717 Description: client incorrectly hits assertion in ptlrpc_replay_req()
3718 Details : for a short time RPCs with bulk IO are in the replay list,
3719 but replay of bulk IOs is unimplemented. If the OST filesystem
3720 is corrupted due to disk cache incoherency and then replay is
3721 started it is possible to trip an assertion. Avoid putting
3722 committed RPCs into the replay list at all to avoid this issue.
3727 Description: large O_DIRECT requests fail under memory pressure/fragmentation
3728 Details : Large single O_DIRECT read and write calls can fail to allocate
3729 a sufficiently large buffer to process the request. In case of
3730 allocation failure the allocation is retried with a smaller
3731 buffer and broken into smaller requests.
3733 Severity : enhancement
3735 Description: Add -o localflock option to simulate old noflock behaviour.
3736 Details : This will achieve local-only flock/fcntl locks coherentness.
3741 Description: versioning check is incomplete
3742 Details : Checking the version difference of client vs. server, report
3743 error if the gap is too big.
3748 Description: add support PG_writeback bit
3749 Details : add support for PG_writeback bit for Lustre, for more carefull
3750 work with page cache in 2.6 kernel. This also fix some deadlocks
3751 and remove hack for work O_SYNC with 2.6 kernel.
3753 Severity : enhancement
3755 Description: Add uninit_groups feature to ldiskfs2 to speed up e2fsck
3756 Details : The uninit_groups feature works in conjunction with the kernel
3757 filesystem code (ldiskfs2 only) and e2fsprogs-1.39-cfs6 to speed
3758 up the pass1 processing of e2fsck. This is a read-only feature
3759 in ldiskfs2 only, so older kernels and current ldiskfs cannot
3760 mount filesystems that have had this feature enabled.
3762 Severity : enhancement
3764 Description: Improve multi-block allocation algorithm to avoid fragmentation
3765 Details : The mballoc3 code (ldiskfs2 only) adds new mechanisms to improve
3766 allocation locality and avoid filesystem fragmentation.
3768 ------------------------------------------------------------------------------
3770 2007-02-09 Cluster File Systems, Inc. <info@clusterfs.com>
3772 * Support for kernels:
3773 2.6.9-42.0.3.EL (RHEL 4)
3774 2.6.5-7.276 (SLES 9)
3775 2.4.21-47.0.1.EL (RHEL 3)
3776 2.6.12.6 vanilla (kernel.org)
3777 2.6.16.21-0.8 (SLES10)
3778 * Recommended e2fsprogs version: 1.39.cfs2-0
3780 * The backwards-compatible /proc/sys/portals symlink has been removed
3781 in this release. Before upgrading, please ensure that you change
3782 any configuration scripts or /etc/sysctl.conf files that access
3783 /proc/sys/portals/* or sysctl portals.* to use the corresponding
3784 entry in /proc/sys/lnet or sysctl lnet.*. This change can be made
3785 in advance of the upgrade on any system running Lustre 1.4.6 or
3786 newer, since /proc/sys/lnet was added in that version.
3787 * Note that reiserfs quotas are disabled on SLES 10 in this kernel
3791 Frequency : only when quota is used
3793 Description: avoid scanning export list for quota master
3794 Details : Change the algorithms to avoid scanning export list in order
3795 to improve the efficiency.
3798 Frequency : MDS failover only, very rarely
3800 Description: "went back in time" messages on mds failover
3801 Details : The greatest transno may be lost when the current operation
3802 finishes with an error (transno==0) and the client's last_rcvd
3803 record is over-written. Save the greatest transno in the
3804 mds_last_transno for this case.
3807 Frequency : always for specific kernels and striping counts
3809 Description: client may get "Matching packet too big" without ACL support
3810 Details : Clients compiled without CONFIG_FS_POSIX_ACL get an error message
3811 when trying to access files in certain configurations. The
3812 clients should in fact be denied when mounting because they do
3813 not understand ACLs.
3816 Frequency : Cray XT3 with more than 4000 clients and multiple jobs
3818 Description: many clients connecting with IO in progress causes connect timeouts
3819 Details : Avoid synchronous journal commits to avoid delays caused by many
3820 clients connecting/disconnecting when bulk IO is in progress.
3821 Queue liblustre connect requests on OST_REQUEST_PORTAL instead of
3822 OST_IO_PORTAL to avoid delays behind potentially many pending
3826 Frequency : occasionally with multiple writers to a single file
3828 Description: shared writes to file may result in wrong size reported by stat()
3829 Details : Allow growing of kms when extent lock is cancelled
3832 Frequency : always with random mmap IO to multi-striped file
3834 Description: mmap write might be lost if we are writing to a 'hole' in stripe
3835 Details : Only if the hole is at the end of OST object so that kms is too
3836 small. Fix is to increase kms accordingly in ll_nopage.
3839 Frequency : rare, only if OST filesystem is inconsistent with MDS filesystem
3841 Description: writes to a missing object would leak memory on the OST
3842 Details : If there is an inconsistency between the MDS and OST filesystems,
3843 such that the MDS references an object that doesn't exist, writes
3844 to that object will leak memory due to incorrect cleanup in the
3845 error handling path, eventually running out of memory on the OST.
3850 Description: Creating too long symlink causes lustre errors
3851 Details : Check symlink and name lengths before sending requests to MDS.
3854 Frequency : only if flock is enabled (not on by default)
3856 Description: posix locks not released on fd closure on 2.6.9+
3857 Details : We failed to add posix locks to list of inode locks on 2.6.9+
3858 kernels, this caused such locks not to be released on fd close and
3859 then assertions on fs unmount about still used locks.
3862 Frequency : MDS failover only, very rarely
3864 Description: clients may get ASSERTION(granted_lock != NULL)
3865 Details : When request was taking a long time, and a client was resending
3866 a getattr by name lock request. The were multiple lock requests
3867 with the same client lock handle and
3868 mds_getattr_name->fixup_handle_for_resent_request found one of the
3869 lock handles but later failed with ASSERTION(granted_lock != NULL).
3874 Description: handle->h_buffer_credits > 0, assertion failure
3875 Details : h_buffer_credits is zero after truncate, causing assertion
3876 failure. This patch extends the transaction or creates a new
3880 Frequency : NFS re-export or patchless client
3881 Bugzilla : 11179, 10796
3882 Description: Crash on NFS re-export node (__d_move)
3883 Details : We do not want to hash the dentry if we don't have a lock.
3884 But if this dentry is later used in d_move, we'd hit uninitialised
3885 list head d_hash, so we just do this to init d_hash field but
3886 leave dentry unhashed.
3889 Frequency : NFS re-export or patchless client
3891 Description: NFS exports has problem with symbolic link
3892 Details : lustre client didn't properly install dentry when re-exported
3893 to NFS or running patchless client.
3896 Frequency : NFS re-export or patchless client
3898 Description: Various nfs/patchless fixes.
3899 Details : fixes reuse disconected alias for lookup process - this fixes
3900 warning "find_exported_dentry: npd != pd",
3901 fix permission error with open files at nfs.
3902 fix apply umask when do revalidate.
3905 Frequency : occasional
3907 Description: Crash on NFS re-export node
3908 Details : calling clear_page() on the wrong pointer triggered oops in
3909 generic_mapping_read().
3912 Frequency : rarely, using O_DIRECT IO
3914 Description: unaligned directio crashes client with LASSERT
3915 Details : check for unaligned buffers before trying any requests.
3918 Frequency : rarely, using CFS RAID5 patches in non-standard kernel series
3920 Description: stale data returned from RAID cache
3921 Details : If only a small amount of IO is done to the RAID device before
3922 reading it again it is possible to get stale data from the RAID
3923 cache instead of reading it from disk.
3926 Frequency : always for sles10 kernel
3928 Description: sles10 support
3929 Details : ll_follow_link: compile fixes and using of nd_set_link
3930 under newer kernels.
3933 Frequency : depends on arch, kernel and compiler version, always on sles10
3936 Description: recursive or deep enough symlinks cause stack overflow
3937 Details : getting rid of large stack-allocated variable in
3941 Frequency : depends on hardware
3943 Description: lustre write performance loss in the SLES10 kernel
3944 Details : the performance loss is caused by using of write barriers in the
3945 ext3 code. The SLES10 kernel turns barrier support on by
3946 default. The fix is to undo that change for ldiskfs.
3948 ------------------------------------------------------------------------------
3950 2006-12-09 Cluster File Systems, Inc. <info@clusterfs.com>
3952 * Support for kernels:
3953 2.6.9-42.0.3EL (RHEL 4)
3954 2.6.5-7.276 (SLES 9)
3955 2.4.21-47.0.1.EL (RHEL 3)
3956 2.6.12.6 vanilla (kernel.org)
3960 Frequency : quota enabled and large files being deleted
3962 Description: releasing more than 4GB of quota at once hangs OST
3963 Details : If a user deletes more than 4GB of files on a single OST it
3964 will cause the OST to spin in an infinite loop. Release
3965 quota in < 4GB chunks, or use a 64-bit value for 1.4.7.1+.
3970 Description: statfs data retrieved from /proc may be stale or zero
3971 Details : When reading per-device statfs data from /proc, in the
3972 {kbytes,files}_{total,free,avail} files, it may appear
3973 as zero or be out of date.
3976 Frequency : systems with MD RAID1 external journal devices
3978 Description: lconf's call to blkid is confused by RAID1 journal devices
3979 Details : Use the "blkid -l" flag to locate the MD RAID device instead
3980 of returning all block devices that match the journal UUID.
3983 Frequency : always, for aggregate stripe size over 4GB
3985 Description: "lfs setstripe" fails assertion when setting 4GB+ stripe width
3986 Details : Using "lfs setstripe" to set stripe size * stripe count over 4GB
3987 will fail the kernel with "ASSERTION(lsm->lsm_xfersize != 0)"
3990 Frequency : always if "lfs find" used on a local file/directory
3992 Description: "lfs find" segfaults if used on a local file/directory
3993 Details : The case where a directory component was not specified wasn't
3994 handled correctly. Handle this properly.
3997 Frequency : always on ppc64
3999 Description: the write to an ext3 filesystem mounted with mballoc got stuck
4000 Details : ext3_mb_generate_buddy() uses find_next_bit() which does not
4001 perform endianness conversion.
4004 Frequency : rarely (truncate to non-zero file size after write under load)
4005 Bugzilla : 10730, 10687
4006 Description: Files padded with zeros to next 4K multiple
4007 Details : With filesystems mounted using the "extents" option (2.6 kernels)
4008 it is possible that files that are truncated to a non-zero size
4009 immediately after being written are filled with zero bytes beyond
4010 the truncated size. No file data is lost.
4012 Severity : enhancement
4014 Description: Allow recovery/failover for liblustre clients.
4015 Details : liblustre clients were unaware of failover configurations until
4018 Severity : enhancement
4020 Description: user file locks should fail when not mounting with flock option
4021 Details : Set up an error-returning stub in ll_file_operations.lock field
4022 to prevent incorrect behaviour when client is mounted without
4023 flock option. Also, set up properly f_op->flock field for
4027 Frequency : always on ia64
4029 Description: "lfs df" loops on printing out MDS statfs information
4030 Details : The obd_ioctl_data was not initialized and in some systems
4031 this caused a failure during the ioctl that did not return
4032 an error. Initialize the struct and return an error on failure.
4035 Frequency : SLES 9 only
4037 Description: Error of copying files with lustre special EAs as root
4038 Details : Client side always return success for setxattr call for lustre
4039 special xattr (currently only "trusted.lov").
4042 Frequency : rarely on clusters with both ia64+i386 clients
4044 Description: ia64+i686 clients doing shared IO on the same file may LBUG
4045 Details : In rare cases when both ia64+i686 (or other mixed-PAGE_SIZE)
4046 clients are doing concurrent writes to the same file it is
4047 possible that the ia64 clients may LASSERT because the OST
4048 extent locks are not PAGE_SIZE aligned. Ensure that grown
4049 locks are always aligned on the request boundary.
4052 Frequency : specific use, occasional
4054 Description: Overwriting in use executable truncates on-disk binary image
4055 Details : If one node attempts to overwrite an executable in use by
4056 another node, we now correctly return ETXTBSY instead of
4057 truncating the file.
4059 Severity : enhancement
4061 Description: Async OSC create to avoid the blocking unnecessarily.
4062 Details : If an OST has no remaining object, system will block on the creating
4063 when need to create a new object on this OST. Now, ways use
4064 pre-created objects when available, instead of blocking on an
4065 empty osc while others are not empty. If we must block, we block
4066 for the shortest possible period of time.
4071 Description: chmod on Lustre root is propagated to other clients
4072 Details : Re-validate root's dentry in ll_lookup_it to avoid having it
4073 invalid by the follow_mount time.
4076 Frequency : liblustre clients only
4078 Description: Race in 'instant cancel' lock handling could lead to such locks
4079 never to be granted in case of SMP MDS
4080 Details : Do not destroy not yet granted but cbpending locks in
4084 Frequency : replay/resend of open
4086 Description: non null lock assetion failure in mds_intent_policy
4087 Details : Trying to replay/resend lockless open requests resulted in
4088 mds_open() returning 0 with no lock. Now it sets a flag if
4089 a lock is going to be returned.
4091 Severity : enhancement
4093 Description: Checksum enhancements
4094 Details : New checksum enhancements allow for resending RPCs that failed
4097 Severity : enhancement
4099 Description: Tunables on number of dirty pages in cacche
4100 Details : Allow to set limit on number of dirty pages cached.
4105 Description: client crash on unmount - lock still has references
4106 Details : In some error handling cases it was possible to leak a lock
4107 reference on a client while accessing a file. This was not
4108 harmful to the client during operation, but would cause the
4109 client to crash when the filesystem is unmounted.
4112 Frequency : specific case, rare
4114 Description: ETXTBSY on mds though file not in use by client
4115 Details : ETXTBSY is no longer incorrectly returned when attempting to
4116 chmod or chown a directory that the user previously tried to
4117 execute or a currently-executing binary.
4120 Frequency : extremely rare except on liblustre-based clients
4122 Description: Lustre space not freed when files are deleted
4123 Details : Clean up open-unlinked files after client eviction. Previously
4124 the unlink was skipped and the files remained as orphans.
4129 Description: OST failure "would be an LBUG" in waiting_locks_callback()
4130 Details : In some cases it was possible to send a blocking callback to
4131 a client doing a glimpse, even though that client didn't get
4132 a lock granted. When the glimpse lock is cancelled on the OST
4133 the freed lock is left on the waiting list and corrupted the list.
4136 Frequency : all core dumps
4138 Description: Broke core dumps to lustre
4139 Details : Negative dentry may be unhashed if parent does not have UPDATE
4140 lock, but some callers, e.g. do_coredump, expect dentry to be
4141 hashed after successful create, hash it in ll_create_it.
4143 ------------------------------------------------------------------------------
4145 2006-09-13 Cluster File Systems, Inc. <info@clusterfs.com>