Revision 7ce9d5d1f3c8736511daa413c64985a05b2feee3 authored by Eric Sandeen on 04 March 2009, 23:38:18 UTC, committed by Theodore Ts'o on 04 March 2009, 23:38:18 UTC
I was seeing fsck errors on inode bitmaps after a 4 thread dbench run on a 4 cpu machine: Inode bitmap differences: -50736 -(50752--50753) etc... I believe that this is because ext4_free_inode() uses atomic bitops, and although ext4_new_inode() *used* to also use atomic bitops for synchronization, commit 393418676a7602e1d7d3f6e560159c65c8cbd50e changed this to use the sb_bgl_lock, so that we could also synchronize against read_inode_bitmap and initialization of uninit inode tables. However, that change left ext4_free_inode using atomic bitops, which I think leaves no synchronization between setting & unsetting bits in the inode table. The below patch fixes it for me, although I wonder if we're getting at all heavy-handed with this spinlock... Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
1 parent fec6c6f
File | Mode | Size |
---|---|---|
ams | ||
Kconfig | -rw-r--r-- | 28.9 KB |
Makefile | -rw-r--r-- | 3.3 KB |
abituguru.c | -rw-r--r-- | 52.2 KB |
abituguru3.c | -rw-r--r-- | 41.0 KB |
ad7414.c | -rw-r--r-- | 7.0 KB |
ad7418.c | -rw-r--r-- | 8.1 KB |
adcxx.c | -rw-r--r-- | 8.1 KB |
adm1021.c | -rw-r--r-- | 13.7 KB |
adm1025.c | -rw-r--r-- | 19.4 KB |
adm1026.c | -rw-r--r-- | 58.7 KB |
adm1029.c | -rw-r--r-- | 13.5 KB |
adm1031.c | -rw-r--r-- | 30.5 KB |
adm9240.c | -rw-r--r-- | 23.5 KB |
ads7828.c | -rw-r--r-- | 7.9 KB |
adt7462.c | -rw-r--r-- | 59.2 KB |
adt7470.c | -rw-r--r-- | 41.4 KB |
adt7473.c | -rw-r--r-- | 34.9 KB |
adt7475.c | -rw-r--r-- | 34.5 KB |
applesmc.c | -rw-r--r-- | 45.1 KB |
asb100.c | -rw-r--r-- | 28.5 KB |
atxp1.c | -rw-r--r-- | 9.2 KB |
coretemp.c | -rw-r--r-- | 11.7 KB |
dme1737.c | -rw-r--r-- | 73.1 KB |
ds1621.c | -rw-r--r-- | 10.1 KB |
f71805f.c | -rw-r--r-- | 48.2 KB |
f71882fg.c | -rw-r--r-- | 64.9 KB |
f75375s.c | -rw-r--r-- | 21.7 KB |
fscher.c | -rw-r--r-- | 19.7 KB |
fschmd.c | -rw-r--r-- | 35.9 KB |
fscpos.c | -rw-r--r-- | 18.8 KB |
gl518sm.c | -rw-r--r-- | 22.9 KB |
gl520sm.c | -rw-r--r-- | 28.1 KB |
hdaps.c | -rw-r--r-- | 16.3 KB |
hp_accel.c | -rw-r--r-- | 11.6 KB |
hwmon-vid.c | -rw-r--r-- | 8.5 KB |
hwmon.c | -rw-r--r-- | 2.6 KB |
i5k_amb.c | -rw-r--r-- | 15.7 KB |
ibmaem.c | -rw-r--r-- | 26.9 KB |
ibmpex.c | -rw-r--r-- | 15.0 KB |
it87.c | -rw-r--r-- | 49.2 KB |
k8temp.c | -rw-r--r-- | 8.8 KB |
lis3lv02d.c | -rw-r--r-- | 12.6 KB |
lis3lv02d.h | -rw-r--r-- | 4.9 KB |
lm63.c | -rw-r--r-- | 19.5 KB |
lm70.c | -rw-r--r-- | 6.2 KB |
lm75.c | -rw-r--r-- | 10.2 KB |
lm75.h | -rw-r--r-- | 1.7 KB |
lm77.c | -rw-r--r-- | 13.3 KB |
lm78.c | -rw-r--r-- | 29.0 KB |
lm80.c | -rw-r--r-- | 19.7 KB |
lm83.c | -rw-r--r-- | 13.5 KB |
lm85.c | -rw-r--r-- | 46.7 KB |
lm87.c | -rw-r--r-- | 30.4 KB |
lm90.c | -rw-r--r-- | 30.0 KB |
lm92.c | -rw-r--r-- | 13.4 KB |
lm93.c | -rw-r--r-- | 83.1 KB |
ltc4245.c | -rw-r--r-- | 15.4 KB |
max1111.c | -rw-r--r-- | 5.4 KB |
max1619.c | -rw-r--r-- | 11.1 KB |
max6650.c | -rw-r--r-- | 18.6 KB |
pc87360.c | -rw-r--r-- | 55.3 KB |
pc87427.c | -rw-r--r-- | 18.0 KB |
sis5595.c | -rw-r--r-- | 25.2 KB |
smsc47b397.c | -rw-r--r-- | 9.9 KB |
smsc47m1.c | -rw-r--r-- | 22.3 KB |
smsc47m192.c | -rw-r--r-- | 20.8 KB |
thmc50.c | -rw-r--r-- | 14.2 KB |
ultra45_env.c | -rw-r--r-- | 8.4 KB |
via686a.c | -rw-r--r-- | 30.6 KB |
vt1211.c | -rw-r--r-- | 39.0 KB |
vt8231.c | -rw-r--r-- | 30.8 KB |
w83627ehf.c | -rw-r--r-- | 49.2 KB |
w83627hf.c | -rw-r--r-- | 54.2 KB |
w83781d.c | -rw-r--r-- | 58.1 KB |
w83791d.c | -rw-r--r-- | 51.0 KB |
w83792d.c | -rw-r--r-- | 55.7 KB |
w83793.c | -rw-r--r-- | 48.5 KB |
w83l785ts.c | -rw-r--r-- | 9.3 KB |
w83l786ng.c | -rw-r--r-- | 22.5 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...