Details
-
Bug
-
Resolution: Duplicate
-
Minor
-
Lustre 2.1.0
-
None
-
RHEL6
-
3
-
10431
Description
We get the following warning and stacktrace under RHEL6 and Lustre 2.1 (in this
case triggered by 'ls -al' in the root of the mounted Lustre filesystem).
WARNING: at fs/fs-writeback.c:967 __mark_inode_dirty+0x108/0x160() (Tainted: G W ---------------- )
Hardware name: X8DTH-i/6/iF/6F
Modules linked in: osd_ldiskfs fsfilt_ldiskfs lustre ldiskfs lmv obdfilter ost cmm mdt mdd mds exportfs mgs mgc ext4 lov osc lquota mdc fid fld ko2iblnd ptlrpc obdclass lvfs lnet libcfs mbcache jbd2 ib_ipoib rdma_ucm ib_ucm ib_uverbs ib_umad rdma_cm ib_cm iw_cm ib_addr ib_sa mlx4_ib ib_mad ib_core sg sd_mod crc_t10dif dm_mirror dm_region_hash dm_log dm_mod video output sbs sbshc power_meter hwmon acpi_pad parport serio_raw i2c_i801 i2c_core ata_generic pata_acpi ata_piix iTCO_wdt iTCO_vendor_support ioatdma i7core_edac edac_core mpt2sas scsi_transport_sas raid_class ipv6 nfs lockd fscache nfs_acl auth_rpcgss sunrpc mlx4_core igb dca [last unloaded: ldiskfs]
Pid: 17095, comm: ls Tainted: G W ---------------- 2.6.32-14chaos #1
Call Trace:
[<ffffffff8106b8f7>] warn_slowpath_common+0x87/0xc0
[<ffffffff8106b94a>] warn_slowpath_null+0x1a/0x20
[<ffffffff81195218>] __mark_inode_dirty+0x108/0x160
[<ffffffff81185d3d>] touch_atime+0x12d/0x170
[<ffffffffa07df467>] ll_readdir+0x297/0x540 [lustre]
[<ffffffff81256941>] ? cpumask_any_but+0x31/0x50
[<ffffffff8117fc60>] ? filldir+0x0/0xe0
[<ffffffff8117fc60>] ? filldir+0x0/0xe0
[<ffffffff8117fee0>] vfs_readdir+0xc0/0xe0
[<ffffffff81180069>] sys_getdents+0x89/0xf0
[<ffffffff814c9705>] ? page_fault+0x25/0x30
[<ffffffff81013172>] system_call_fastpath+0x16/0x1b
--[ end trace 608329aca724c430 ]--
bdi-(null) not registered
In lustre/llite/llite_lib.c:ll_fill_super() we have
#ifdef HAVE_NEW_BACKING_DEV_INFO
lsi->bdi.name = "lustre";
lsi->bdi.capabilities = BDI_CAP_MAP_COPY;
err = bdi_register(&lsi->bdi, NULL, "lustre-%d",
atomic_inc_return(&ll_bdi_num));
sb->s_bdi = &lsi->bdi;
#endif
where HAVE_NEW_BACKING_DEV_INFO is defined at configure time if struct
backing_dev_info has member wb_cnt. However, RHEL6 has a backport of the
following patch which changes the write back thread queue interface and removes
wb_cnt.
So the superblock bdi is never properly registered and we trigger the
warning in __mark_inode_dirty().