/
usr
/
src
/
kernels
/
4.18.0-553.157.1.el8_10.x86_64
/
include
/
linux
/
/usr/src/kernels/4.18.0-553.157.1.el8_10.x86_64/include/linux
mkdir
upload
Name
Size
Mode
Actions
amba/
-
0755
rm
avf/
-
0755
rm
bcma/
-
0755
rm
byteorder/
-
0755
rm
can/
-
0755
rm
ceph/
-
0755
rm
clk/
-
0755
rm
crush/
-
0755
rm
decompress/
-
0755
rm
dma/
-
0755
rm
dsa/
-
0755
rm
extcon/
-
0755
rm
firmware/
-
0755
rm
fpga/
-
0755
rm
fsl/
-
0755
rm
gpio/
-
0755
rm
hsi/
-
0755
rm
iio/
-
0755
rm
input/
-
0755
rm
irqchip/
-
0755
rm
isdn/
-
0755
rm
lockd/
-
0755
rm
mailbox/
-
0755
rm
mfd/
-
0755
rm
mlx4/
-
0755
rm
mlx5/
-
0755
rm
mmc/
-
0755
rm
mtd/
-
0755
rm
mux/
-
0755
rm
net/
-
0755
rm
netfilter/
-
0755
rm
netfilter_arp/
-
0755
rm
netfilter_bridge/
-
0755
rm
netfilter_ipv4/
-
0755
rm
netfilter_ipv6/
-
0755
rm
pcs/
-
0755
rm
perf/
-
0755
rm
phy/
-
0755
rm
pinctrl/
-
0755
rm
platform_data/
-
0755
rm
power/
-
0755
rm
qed/
-
0755
rm
raid/
-
0755
rm
regulator/
-
0755
rm
remoteproc/
-
0755
rm
reset/
-
0755
rm
rpmsg/
-
0755
rm
rtc/
-
0755
rm
sched/
-
0755
rm
soc/
-
0755
rm
soundwire/
-
0755
rm
spi/
-
0755
rm
ssb/
-
0755
rm
sunrpc/
-
0755
rm
ulpi/
-
0755
rm
unaligned/
-
0755
rm
usb/
-
0755
rm
uwb/
-
0755
rm
wimax/
-
0755
rm
8250_pci.h
1038
0644
edit
dl
rm
a.out.h
354
0644
edit
dl
rm
acct.h
2551
0644
edit
dl
rm
acpi.h
43130
0644
edit
dl
rm
acpi_apmt.h
367
0644
edit
dl
rm
acpi_dma.h
3300
0644
edit
dl
rm
acpi_iort.h
3235
0644
edit
dl
rm
acpi_pmtmr.h
674
0644
edit
dl
rm
adb.h
1832
0644
edit
dl
rm
adfs_fs.h
574
0644
edit
dl
rm
adxl.h
310
0644
edit
dl
rm
aer.h
1822
0644
edit
dl
rm
agpgart.h
3908
0644
edit
dl
rm
agp_backend.h
3534
0644
edit
dl
rm
ahci-remap.h
607
0644
edit
dl
rm
ahci_platform.h
1772
0644
edit
dl
rm
aio.h
651
0644
edit
dl
rm
alarmtimer.h
1875
0644
edit
dl
rm
altera_jtaguart.h
379
0644
edit
dl
rm
altera_uart.h
397
0644
edit
dl
rm
amd-iommu.h
6931
0644
edit
dl
rm
amd-pstate.h
3356
0644
edit
dl
rm
anon_inodes.h
494
0644
edit
dl
rm
aperture.h
1619
0644
edit
dl
rm
apm-emulation.h
1575
0644
edit
dl
rm
apm_bios.h
2746
0644
edit
dl
rm
apple-gmux.h
1459
0644
edit
dl
rm
apple_bl.h
498
0644
edit
dl
rm
arch_topology.h
1983
0644
edit
dl
rm
arm-cci.h
2058
0644
edit
dl
rm
arm-smccc.h
16066
0644
edit
dl
rm
arm_sdei.h
2641
0644
edit
dl
rm
array_size.h
332
0644
edit
dl
rm
ascii85.h
532
0644
edit
dl
rm
asn1.h
2039
0644
edit
dl
rm
asn1_ber_bytecode.h
2783
0644
edit
dl
rm
asn1_decoder.h
675
0644
edit
dl
rm
assoc_array.h
3156
0644
edit
dl
rm
assoc_array_priv.h
5630
0644
edit
dl
rm
async.h
4591
0644
edit
dl
rm
async_tx.h
7487
0644
edit
dl
rm
ata.h
33980
0644
edit
dl
rm
atalk.h
4550
0644
edit
dl
rm
ata_platform.h
729
0644
edit
dl
rm
ath9k_platform.h
1477
0644
edit
dl
rm
atm.h
287
0644
edit
dl
rm
atmdev.h
10457
0644
edit
dl
rm
atmel-mci.h
1429
0644
edit
dl
rm
atmel-ssc.h
9971
0644
edit
dl
rm
atmel_pdc.h
1502
0644
edit
dl
rm
atmel_tc.h
11600
0644
edit
dl
rm
atm_suni.h
253
0644
edit
dl
rm
atm_tcp.h
511
0644
edit
dl
rm
atomic.h
37546
0644
edit
dl
rm
attribute_container.h
2799
0644
edit
dl
rm
audit.h
20332
0644
edit
dl
rm
audit_arch.h
559
0644
edit
dl
rm
auto_dev-ioctl.h
454
0644
edit
dl
rm
auto_fs.h
436
0644
edit
dl
rm
auxiliary_bus.h
2787
0644
edit
dl
rm
auxvec.h
304
0644
edit
dl
rm
average.h
2481
0644
edit
dl
rm
b1pcmcia.h
666
0644
edit
dl
rm
backing-dev-defs.h
10327
0644
edit
dl
rm
backing-dev.h
12260
0644
edit
dl
rm
backlight.h
13447
0644
edit
dl
rm
badblocks.h
2188
0644
edit
dl
rm
balloon_compaction.h
6745
0644
edit
dl
rm
bcd.h
559
0644
edit
dl
rm
bch.h
2660
0644
edit
dl
rm
bcm47xx_nvram.h
1247
0644
edit
dl
rm
bcm47xx_sprom.h
600
0644
edit
dl
rm
bcm47xx_wdt.h
555
0644
edit
dl
rm
bcm963xx_nvram.h
3036
0644
edit
dl
rm
bcm963xx_tag.h
3685
0644
edit
dl
rm
binfmts.h
5443
0644
edit
dl
rm
bio.h
20690
0644
edit
dl
rm
bitfield.h
5899
0644
edit
dl
rm
bitmap.h
21496
0644
edit
dl
rm
bitops.h
8870
0644
edit
dl
rm
bitrev.h
2541
0644
edit
dl
rm
bits.h
1512
0644
edit
dl
rm
bit_spinlock.h
2360
0644
edit
dl
rm
blk-cgroup.h
22728
0644
edit
dl
rm
blk-mq-pci.h
269
0644
edit
dl
rm
blk-mq-rdma.h
234
0644
edit
dl
rm
blk-mq-virtio.h
293
0644
edit
dl
rm
blk-mq.h
16074
0644
edit
dl
rm
blk-pm.h
717
0644
edit
dl
rm
blkdev.h
58898
0644
edit
dl
rm
blkpg.h
436
0644
edit
dl
rm
blktrace_api.h
3777
0644
edit
dl
rm
blk_types.h
15342
0644
edit
dl
rm
blockgroup_lock.h
810
0644
edit
dl
rm
bma150.h
1938
0644
edit
dl
rm
bottom_half.h
803
0644
edit
dl
rm
bpf-cgroup.h
19818
0644
edit
dl
rm
bpf-netns.h
1559
0644
edit
dl
rm
bpf.h
73387
0644
edit
dl
rm
bpfilter.h
791
0644
edit
dl
rm
bpfptr.h
1733
0644
edit
dl
rm
bpf_lirc.h
698
0644
edit
dl
rm
bpf_local_storage.h
5349
0644
edit
dl
rm
bpf_lsm.h
1431
0644
edit
dl
rm
bpf_trace.h
166
0644
edit
dl
rm
bpf_types.h
5395
0644
edit
dl
rm
bpf_verifier.h
18791
0644
edit
dl
rm
brcmphy.h
14023
0644
edit
dl
rm
bsearch.h
275
0644
edit
dl
rm
bsg-lib.h
2455
0644
edit
dl
rm
bsg.h
1094
0644
edit
dl
rm
btf.h
7363
0644
edit
dl
rm
btf_ids.h
5174
0644
edit
dl
rm
btree-128.h
2737
0644
edit
dl
rm
btree-type.h
3991
0644
edit
dl
rm
btree.h
6999
0644
edit
dl
rm
btrfs.h
145
0644
edit
dl
rm
buffer_head.h
14379
0644
edit
dl
rm
bug.h
1967
0644
edit
dl
rm
buildid.h
248
0644
edit
dl
rm
build_bug.h
3066
0644
edit
dl
rm
bvec.h
4119
0644
edit
dl
rm
c2port.h
1529
0644
edit
dl
rm
cache.h
2182
0644
edit
dl
rm
cacheinfo.h
4796
0644
edit
dl
rm
capability.h
8179
0644
edit
dl
rm
cb710.h
5827
0644
edit
dl
rm
cciss_ioctl.h
1053
0644
edit
dl
rm
ccp.h
18697
0644
edit
dl
rm
cc_platform.h
3140
0644
edit
dl
rm
cdev.h
845
0644
edit
dl
rm
cdrom.h
9193
0644
edit
dl
rm
cfag12864b.h
1499
0644
edit
dl
rm
cgroup-defs.h
27242
0644
edit
dl
rm
cgroup.h
28880
0644
edit
dl
rm
cgroup_rdma.h
1358
0644
edit
dl
rm
cgroup_subsys.h
1259
0644
edit
dl
rm
circ_buf.h
1120
0644
edit
dl
rm
cleancache.h
3982
0644
edit
dl
rm
cleanup.h
14215
0644
edit
dl
rm
clk-provider.h
37542
0644
edit
dl
rm
clk.h
25157
0644
edit
dl
rm
clkdev.h
1698
0644
edit
dl
rm
clockchips.h
7445
0644
edit
dl
rm
clocksource.h
9188
0644
edit
dl
rm
clock_cooling.h
2106
0644
edit
dl
rm
cm4000_cs.h
199
0644
edit
dl
rm
cma.h
1212
0644
edit
dl
rm
cmdline-parser.h
1238
0644
edit
dl
rm
cnt32_to_63.h
3691
0644
edit
dl
rm
cn_proc.h
1890
0644
edit
dl
rm
coda.h
2244
0644
edit
dl
rm
coda_psdev.h
2692
0644
edit
dl
rm
compaction.h
7654
0644
edit
dl
rm
compat.h
35739
0644
edit
dl
rm
compat_time.h
499
0644
edit
dl
rm
compiler-clang.h
2446
0644
edit
dl
rm
compiler-gcc.h
5756
0644
edit
dl
rm
compiler-intel.h
949
0644
edit
dl
rm
compiler.h
15718
0644
edit
dl
rm
compiler_attributes.h
10600
0644
edit
dl
rm
compiler_types.h
6931
0644
edit
dl
rm
completion.h
4201
0644
edit
dl
rm
component.h
4459
0644
edit
dl
rm
concap.h
3778
0644
edit
dl
rm
configfs.h
9441
0644
edit
dl
rm
connector.h
2490
0644
edit
dl
rm
console.h
7504
0644
edit
dl
rm
consolemap.h
1068
0644
edit
dl
rm
console_struct.h
6966
0644
edit
dl
rm
const.h
421
0644
edit
dl
rm
container.h
668
0644
edit
dl
rm
container_of.h
1278
0644
edit
dl
rm
context_tracking.h
5168
0644
edit
dl
rm
context_tracking_state.h
1529
0644
edit
dl
rm
cookie.h
1254
0644
edit
dl
rm
cordic.h
1794
0644
edit
dl
rm
coredump.h
797
0644
edit
dl
rm
coresight-pmu.h
989
0644
edit
dl
rm
coresight-stm.h
152
0644
edit
dl
rm
coresight.h
9676
0644
edit
dl
rm
counter.h
15497
0644
edit
dl
rm
counter_enum.h
1463
0644
edit
dl
rm
count_zeros.h
1660
0644
edit
dl
rm
cper.h
16826
0644
edit
dl
rm
cpu.h
7959
0644
edit
dl
rm
cpufeature.h
1882
0644
edit
dl
rm
cpufreq.h
34248
0644
edit
dl
rm
cpuhotplug.h
14269
0644
edit
dl
rm
cpuidle.h
13061
0644
edit
dl
rm
cpuidle_haltpoll.h
312
0644
edit
dl
rm
cpumask.h
29721
0644
edit
dl
rm
cpuset.h
8297
0644
edit
dl
rm
cpu_cooling.h
2389
0644
edit
dl
rm
cpu_pm.h
2850
0644
edit
dl
rm
cpu_rmap.h
1902
0644
edit
dl
rm
crash_core.h
3292
0644
edit
dl
rm
crash_dump.h
5193
0644
edit
dl
rm
crc-ccitt.h
609
0644
edit
dl
rm
crc-itu-t.h
613
0644
edit
dl
rm
crc-t10dif.h
453
0644
edit
dl
rm
crc4.h
192
0644
edit
dl
rm
crc7.h
316
0644
edit
dl
rm
crc8.h
3747
0644
edit
dl
rm
crc16.h
622
0644
edit
dl
rm
crc32.h
2894
0644
edit
dl
rm
crc32c.h
331
0644
edit
dl
rm
crc32poly.h
610
0644
edit
dl
rm
cred.h
12749
0644
edit
dl
rm
crypto.h
59393
0644
edit
dl
rm
cryptohash.h
546
0644
edit
dl
rm
cs5535.h
6426
0644
edit
dl
rm
ctype.h
1791
0644
edit
dl
rm
cuda.h
501
0644
edit
dl
rm
cxl_err.h
468
0644
edit
dl
rm
cyclades.h
10607
0644
edit
dl
rm
damon.h
19616
0644
edit
dl
rm
davinci_emac.h
1150
0644
edit
dl
rm
dax.h
7553
0644
edit
dl
rm
dca.h
2698
0644
edit
dl
rm
dcache.h
19621
0644
edit
dl
rm
dccp.h
10989
0644
edit
dl
rm
dcookies.h
1329
0644
edit
dl
rm
debugfs.h
11921
0644
edit
dl
rm
debugobjects.h
3988
0644
edit
dl
rm
debug_locks.h
1627
0644
edit
dl
rm
delay.h
2335
0644
edit
dl
rm
delayacct.h
6285
0644
edit
dl
rm
delayed_call.h
709
0644
edit
dl
rm
dell-led.h
128
0644
edit
dl
rm
devcoredump.h
2849
0644
edit
dl
rm
devfreq-event.h
5778
0644
edit
dl
rm
devfreq.h
12987
0644
edit
dl
rm
devfreq_cooling.h
3608
0644
edit
dl
rm
device-mapper.h
19529
0644
edit
dl
rm
device.h
67275
0644
edit
dl
rm
device_cgroup.h
1680
0644
edit
dl
rm
devm-helpers.h
2740
0644
edit
dl
rm
devpts_fs.h
1314
0644
edit
dl
rm
dev_printk.h
7731
0644
edit
dl
rm
digsig.h
1379
0644
edit
dl
rm
dim.h
8951
0644
edit
dl
rm
dio.h
11229
0644
edit
dl
rm
dirent.h
216
0644
edit
dl
rm
dlm.h
7240
0644
edit
dl
rm
dlm_plock.h
678
0644
edit
dl
rm
dm-bufio.h
4574
0644
edit
dl
rm
dm-dirty-log.h
4038
0644
edit
dl
rm
dm-io.h
1980
0644
edit
dl
rm
dm-kcopyd.h
3013
0644
edit
dl
rm
dm-region-hash.h
3182
0644
edit
dl
rm
dm9000.h
1136
0644
edit
dl
rm
dma-buf.h
21547
0644
edit
dl
rm
dma-contiguous.h
5070
0644
edit
dl
rm
dma-direct.h
3681
0644
edit
dl
rm
dma-direction.h
407
0644
edit
dl
rm
dma-fence-array.h
2983
0644
edit
dl
rm
dma-fence-chain.h
3576
0644
edit
dl
rm
dma-fence-unwrap.h
2298
0644
edit
dl
rm
dma-fence.h
21162
0644
edit
dl
rm
dma-iommu.h
3020
0644
edit
dl
rm
dma-map-ops.h
10863
0644
edit
dl
rm
dma-mapping.h
23170
0644
edit
dl
rm
dma-resv.h
17245
0644
edit
dl
rm
dmaengine.h
54891
0644
edit
dl
rm
dmapool.h
1832
0644
edit
dl
rm
dmar.h
8791
0644
edit
dl
rm
dmi.h
4375
0644
edit
dl
rm
dnotify.h
1047
0644
edit
dl
rm
dns_resolver.h
1339
0644
edit
dl
rm
dqblk_qtree.h
2238
0644
edit
dl
rm
dqblk_v1.h
327
0644
edit
dl
rm
dqblk_v2.h
406
0644
edit
dl
rm
drbd.h
10923
0644
edit
dl
rm
drbd_genl.h
22010
0644
edit
dl
rm
drbd_genl_api.h
1808
0644
edit
dl
rm
drbd_limits.h
8003
0644
edit
dl
rm
ds2782_battery.h
158
0644
edit
dl
rm
dtlk.h
3584
0644
edit
dl
rm
dw_apb_timer.h
1743
0644
edit
dl
rm
dynamic_debug.h
5831
0644
edit
dl
rm
dynamic_queue_limits.h
3812
0644
edit
dl
rm
earlycpio.h
359
0644
edit
dl
rm
ecryptfs.h
3915
0644
edit
dl
rm
edac.h
20718
0644
edit
dl
rm
edd.h
1469
0644
edit
dl
rm
edma.h
807
0644
edit
dl
rm
eeprom_93cx6.h
3008
0644
edit
dl
rm
eeprom_93xx46.h
776
0644
edit
dl
rm
efi-bgrt.h
644
0644
edit
dl
rm
efi.h
62813
0644
edit
dl
rm
efs_vh.h
1585
0644
edit
dl
rm
eisa.h
3031
0644
edit
dl
rm
elevator.h
6059
0644
edit
dl
rm
elf-fdpic.h
2237
0644
edit
dl
rm
elf-randomize.h
583
0644
edit
dl
rm
elf.h
1565
0644
edit
dl
rm
elfcore-compat.h
1267
0644
edit
dl
rm
elfcore.h
2160
0644
edit
dl
rm
elfnote.h
3625
0644
edit
dl
rm
enclosure.h
4711
0644
edit
dl
rm
energy_model.h
5994
0644
edit
dl
rm
err.h
1583
0644
edit
dl
rm
errname.h
283
0644
edit
dl
rm
errno.h
1424
0644
edit
dl
rm
error-injection.h
607
0644
edit
dl
rm
errqueue.h
524
0644
edit
dl
rm
errseq.h
382
0644
edit
dl
rm
etherdevice.h
16917
0644
edit
dl
rm
ethtool.h
35580
0644
edit
dl
rm
ethtool_netlink.h
1920
0644
edit
dl
rm
eventfd.h
2167
0644
edit
dl
rm
eventpoll.h
2457
0644
edit
dl
rm
evm.h
2985
0644
edit
dl
rm
export.h
3697
0644
edit
dl
rm
exportfs.h
7692
0644
edit
dl
rm
ext2_fs.h
967
0644
edit
dl
rm
extable.h
1309
0644
edit
dl
rm
extcon-provider.h
4431
0644
edit
dl
rm
extcon.h
10270
0644
edit
dl
rm
f2fs_fs.h
18526
0644
edit
dl
rm
f75375s.h
541
0644
edit
dl
rm
falloc.h
1719
0644
edit
dl
rm
fanotify.h
2336
0644
edit
dl
rm
fault-inject.h
1975
0644
edit
dl
rm
fb.h
28712
0644
edit
dl
rm
fbcon.h
2136
0644
edit
dl
rm
fcdevice.h
988
0644
edit
dl
rm
fcntl.h
1808
0644
edit
dl
rm
fd.h
490
0644
edit
dl
rm
fddidevice.h
1044
0644
edit
dl
rm
fdtable.h
3616
0644
edit
dl
rm
fec.h
609
0644
edit
dl
rm
file.h
3147
0644
edit
dl
rm
filter.h
42781
0644
edit
dl
rm
fips.h
167
0644
edit
dl
rm
firewire.h
13868
0644
edit
dl
rm
firmware-map.h
1351
0644
edit
dl
rm
firmware.h
5874
0644
edit
dl
rm
fixp-arith.h
4516
0644
edit
dl
rm
flat.h
1653
0644
edit
dl
rm
flex_array.h
4412
0644
edit
dl
rm
flex_proportions.h
2881
0644
edit
dl
rm
fmc-sdb.h
1319
0644
edit
dl
rm
fmc.h
9877
0644
edit
dl
rm
font.h
1598
0644
edit
dl
rm
fortify-string.h
16550
0644
edit
dl
rm
freezer.h
9257
0644
edit
dl
rm
frontswap.h
3121
0644
edit
dl
rm
fs.h
118914
0644
edit
dl
rm
fscache-cache.h
19254
0644
edit
dl
rm
fscache.h
29577
0644
edit
dl
rm
fscrypt.h
9441
0644
edit
dl
rm
fscrypt_notsupp.h
5077
0644
edit
dl
rm
fscrypt_supp.h
7421
0644
edit
dl
rm
fsi.h
2424
0644
edit
dl
rm
fsl-diu-fb.h
4179
0644
edit
dl
rm
fsldma.h
398
0644
edit
dl
rm
fsl_devices.h
4430
0644
edit
dl
rm
fsl_hypervisor.h
2824
0644
edit
dl
rm
fsl_ifc.h
25658
0644
edit
dl
rm
fsnotify.h
7796
0644
edit
dl
rm
fsnotify_backend.h
20665
0644
edit
dl
rm
fs_context.h
9097
0644
edit
dl
rm
fs_enet_pd.h
3457
0644
edit
dl
rm
fs_parser.h
4750
0644
edit
dl
rm
fs_pin.h
619
0644
edit
dl
rm
fs_stack.h
811
0644
edit
dl
rm
fs_struct.h
1751
0644
edit
dl
rm
fs_uart_pd.h
1523
0644
edit
dl
rm
ftrace.h
33619
0644
edit
dl
rm
ftrace_irq.h
1163
0644
edit
dl
rm
futex.h
2497
0644
edit
dl
rm
fwnode.h
7579
0644
edit
dl
rm
gameport.h
5695
0644
edit
dl
rm
gcd.h
193
0644
edit
dl
rm
genalloc.h
7950
0644
edit
dl
rm
generic-radix-tree.h
6671
0644
edit
dl
rm
genetlink.h
1379
0644
edit
dl
rm
genhd.h
16076
0644
edit
dl
rm
genl_magic_func.h
11869
0644
edit
dl
rm
genl_magic_struct.h
7805
0644
edit
dl
rm
getcpu.h
641
0644
edit
dl
rm
gfp.h
24208
0644
edit
dl
rm
glob.h
256
0644
edit
dl
rm
goldfish.h
605
0644
edit
dl
rm
gpio-pxa.h
571
0644
edit
dl
rm
gpio.h
5478
0644
edit
dl
rm
gpio_keys.h
1782
0644
edit
dl
rm
hardirq.h
3264
0644
edit
dl
rm
hash.h
2998
0644
edit
dl
rm
hashtable.h
6805
0644
edit
dl
rm
hdlc.h
3413
0644
edit
dl
rm
hdlcdrv.h
6470
0644
edit
dl
rm
hdmi.h
12851
0644
edit
dl
rm
hid-debug.h
1458
0644
edit
dl
rm
hid-roccat.h
484
0644
edit
dl
rm
hid-sensor-hub.h
9190
0644
edit
dl
rm
hid-sensor-ids.h
7617
0644
edit
dl
rm
hid.h
38339
0644
edit
dl
rm
hidden.h
966
0644
edit
dl
rm
hiddev.h
1458
0644
edit
dl
rm
hidraw.h
1146
0644
edit
dl
rm
highmem-internal.h
4952
0644
edit
dl
rm
highmem.h
8235
0644
edit
dl
rm
highuid.h
3194
0644
edit
dl
rm
hil.h
18857
0644
edit
dl
rm
hil_mlc.h
5249
0644
edit
dl
rm
hippidevice.h
1263
0644
edit
dl
rm
hmm.h
4656
0644
edit
dl
rm
host1x.h
8618
0644
edit
dl
rm
hpet.h
2615
0644
edit
dl
rm
hp_sdc.h
14352
0644
edit
dl
rm
hrtimer.h
16651
0644
edit
dl
rm
hrtimer_defs.h
660
0644
edit
dl
rm
htcpld.h
617
0644
edit
dl
rm
hugetlb.h
27496
0644
edit
dl
rm
hugetlb_cgroup.h
7056
0644
edit
dl
rm
hugetlb_inline.h
374
0644
edit
dl
rm
huge_mm.h
15743
0644
edit
dl
rm
hwmon-sysfs.h
2024
0644
edit
dl
rm
hwmon-vid.h
1518
0644
edit
dl
rm
hwmon.h
14084
0644
edit
dl
rm
hwspinlock.h
13044
0644
edit
dl
rm
hw_breakpoint.h
4405
0644
edit
dl
rm
hw_random.h
2377
0644
edit
dl
rm
hyperv.h
50010
0644
edit
dl
rm
hypervisor.h
748
0644
edit
dl
rm
i2c-algo-bit.h
2322
0644
edit
dl
rm
i2c-algo-pca.h
2599
0644
edit
dl
rm
i2c-algo-pcf.h
1926
0644
edit
dl
rm
i2c-dev.h
371
0644
edit
dl
rm
i2c-mux.h
1668
0644
edit
dl
rm
i2c-pxa.h
438
0644
edit
dl
rm
i2c-smbus.h
1991
0644
edit
dl
rm
i2c.h
37874
0644
edit
dl
rm
i8042.h
2191
0644
edit
dl
rm
i8253.h
809
0644
edit
dl
rm
icmp.h
1085
0644
edit
dl
rm
icmpv6.h
1732
0644
edit
dl
rm
ide.h
47403
0644
edit
dl
rm
idr.h
9715
0644
edit
dl
rm
ieee80211.h
153058
0644
edit
dl
rm
ieee802154.h
11780
0644
edit
dl
rm
if_arp.h
1900
0644
edit
dl
rm
if_bridge.h
5380
0644
edit
dl
rm
if_eql.h
1100
0644
edit
dl
rm
if_ether.h
1506
0644
edit
dl
rm
if_fddi.h
3526
0644
edit
dl
rm
if_frad.h
2937
0644
edit
dl
rm
if_link.h
592
0644
edit
dl
rm
if_ltalk.h
188
0644
edit
dl
rm
if_macvlan.h
2757
0644
edit
dl
rm
if_phonet.h
319
0644
edit
dl
rm
if_pppol2tp.h
727
0644
edit
dl
rm
if_pppox.h
2979
0644
edit
dl
rm
if_tap.h
2288
0644
edit
dl
rm
if_team.h
8297
0644
edit
dl
rm
if_tun.h
2050
0644
edit
dl
rm
if_tunnel.h
409
0644
edit
dl
rm
if_vlan.h
21124
0644
edit
dl
rm
igmp.h
4753
0644
edit
dl
rm
ihex.h
2001
0644
edit
dl
rm
ima.h
3496
0644
edit
dl
rm
imx-media.h
811
0644
edit
dl
rm
in.h
2592
0644
edit
dl
rm
in6.h
1893
0644
edit
dl
rm
indirect_call_wrapper.h
2191
0644
edit
dl
rm
inet.h
2918
0644
edit
dl
rm
inetdevice.h
8658
0644
edit
dl
rm
inet_diag.h
2606
0644
edit
dl
rm
init.h
9778
0644
edit
dl
rm
initrd.h
789
0644
edit
dl
rm
init_ohci1394_dma.h
196
0644
edit
dl
rm
init_task.h
1407
0644
edit
dl
rm
inotify.h
713
0644
edit
dl
rm
input-polldev.h
2074
0644
edit
dl
rm
input.h
19002
0644
edit
dl
rm
instrumented.h
2868
0644
edit
dl
rm
integrity.h
1074
0644
edit
dl
rm
intel-iommu.h
32063
0644
edit
dl
rm
intel-ish-client-if.h
4091
0644
edit
dl
rm
intel-pti.h
1600
0644
edit
dl
rm
intel_rapl.h
4265
0644
edit
dl
rm
intel_th.h
2501
0644
edit
dl
rm
interrupt.h
24777
0644
edit
dl
rm
interval_tree.h
831
0644
edit
dl
rm
interval_tree_generic.h
7513
0644
edit
dl
rm
io-64-nonatomic-hi-lo.h
2456
0644
edit
dl
rm
io-64-nonatomic-lo-hi.h
2456
0644
edit
dl
rm
io-mapping.h
5222
0644
edit
dl
rm
io-pgtable.h
8498
0644
edit
dl
rm
io.h
6201
0644
edit
dl
rm
ioasid.h
2174
0644
edit
dl
rm
ioc3.h
3214
0644
edit
dl
rm
ioc4.h
5920
0644
edit
dl
rm
iocontext.h
4878
0644
edit
dl
rm
iomap.h
13893
0644
edit
dl
rm
iommu-helper.h
1146
0644
edit
dl
rm
iommu.h
37180
0644
edit
dl
rm
iopoll.h
8175
0644
edit
dl
rm
ioport.h
12686
0644
edit
dl
rm
ioprio.h
2464
0644
edit
dl
rm
iosys-map.h
15311
0644
edit
dl
rm
iova.h
4265
0644
edit
dl
rm
ip.h
1235
0644
edit
dl
rm
ipack.h
9062
0644
edit
dl
rm
ipc.h
613
0644
edit
dl
rm
ipc_namespace.h
4682
0644
edit
dl
rm
ipmi-fru.h
3694
0644
edit
dl
rm
ipmi.h
11633
0644
edit
dl
rm
ipmi_smi.h
11022
0644
edit
dl
rm
ipv6.h
9283
0644
edit
dl
rm
ipv6_route.h
594
0644
edit
dl
rm
irq.h
41783
0644
edit
dl
rm
irqbypass.h
3681
0644
edit
dl
rm
irqchip.h
1597
0644
edit
dl
rm
irqdesc.h
8460
0644
edit
dl
rm
irqdomain.h
20645
0644
edit
dl
rm
irqflags.h
8105
0644
edit
dl
rm
irqhandler.h
362
0644
edit
dl
rm
irqnr.h
856
0644
edit
dl
rm
irqreturn.h
503
0644
edit
dl
rm
irq_cpustat.h
845
0644
edit
dl
rm
irq_poll.h
575
0644
edit
dl
rm
irq_sim.h
971
0644
edit
dl
rm
irq_work.h
1924
0644
edit
dl
rm
isa.h
2166
0644
edit
dl
rm
isapnp.h
3896
0644
edit
dl
rm
iscsi_boot_sysfs.h
4185
0644
edit
dl
rm
iscsi_ibft.h
1306
0644
edit
dl
rm
isdn.h
23545
0644
edit
dl
rm
isdnif.h
19723
0644
edit
dl
rm
isdn_divertif.h
1301
0644
edit
dl
rm
isdn_ppp.h
6797
0644
edit
dl
rm
isicom.h
1528
0644
edit
dl
rm
ism.h
2273
0644
edit
dl
rm
iversion.h
12670
0644
edit
dl
rm
jbd2.h
47971
0644
edit
dl
rm
jhash.h
4735
0644
edit
dl
rm
jiffies.h
16340
0644
edit
dl
rm
journal-head.h
2934
0644
edit
dl
rm
joystick.h
437
0644
edit
dl
rm
jump_label.h
15376
0644
edit
dl
rm
jump_label_ratelimit.h
2867
0644
edit
dl
rm
jz4740-adc.h
1023
0644
edit
dl
rm
jz4780-nemc.h
1185
0644
edit
dl
rm
kallsyms.h
4335
0644
edit
dl
rm
kasan-checks.h
1495
0644
edit
dl
rm
kasan.h
12678
0644
edit
dl
rm
kbd_diacr.h
198
0644
edit
dl
rm
kbd_kern.h
3931
0644
edit
dl
rm
kbuild.h
380
0644
edit
dl
rm
kconfig.h
2481
0644
edit
dl
rm
kcore.h
891
0644
edit
dl
rm
kcov.h
2463
0644
edit
dl
rm
kcsan-checks.h
8859
0644
edit
dl
rm
kcsan.h
1948
0644
edit
dl
rm
kdb.h
7478
0644
edit
dl
rm
kdebug.h
487
0644
edit
dl
rm
kdev_t.h
1744
0644
edit
dl
rm
kernel-page-flags.h
505
0644
edit
dl
rm
kernel.h
20616
0644
edit
dl
rm
kernelcapi.h
4552
0644
edit
dl
rm
kernel_stat.h
3031
0644
edit
dl
rm
kernfs.h
19336
0644
edit
dl
rm
kern_levels.h
1611
0644
edit
dl
rm
kexec.h
10896
0644
edit
dl
rm
key-type.h
6583
0644
edit
dl
rm
key.h
13149
0644
edit
dl
rm
keyboard.h
665
0644
edit
dl
rm
kfifo.h
25431
0644
edit
dl
rm
kgdb.h
11569
0644
edit
dl
rm
khugepaged.h
2832
0644
edit
dl
rm
klist.h
1926
0644
edit
dl
rm
kmemleak.h
3954
0644
edit
dl
rm
kmod.h
1752
0644
edit
dl
rm
kmsg_dump.h
2627
0644
edit
dl
rm
kobject.h
7727
0644
edit
dl
rm
kobject_ns.h
1934
0644
edit
dl
rm
kobj_map.h
545
0644
edit
dl
rm
kprobes.h
13222
0644
edit
dl
rm
kref.h
3361
0644
edit
dl
rm
ks0108.h
960
0644
edit
dl
rm
ks8842.h
1223
0644
edit
dl
rm
ks8851_mll.h
1063
0644
edit
dl
rm
ksm.h
2753
0644
edit
dl
rm
kstrtox.h
6751
0644
edit
dl
rm
kthread.h
7924
0644
edit
dl
rm
ktime.h
6607
0644
edit
dl
rm
kvm_dirty_ring.h
2633
0644
edit
dl
rm
kvm_host.h
65710
0644
edit
dl
rm
kvm_irqfd.h
2458
0644
edit
dl
rm
kvm_para.h
402
0644
edit
dl
rm
kvm_types.h
3264
0644
edit
dl
rm
l2tp.h
261
0644
edit
dl
rm
lapb.h
1752
0644
edit
dl
rm
latencytop.h
1207
0644
edit
dl
rm
lcd.h
3867
0644
edit
dl
rm
lcm.h
275
0644
edit
dl
rm
led-class-flash.h
5619
0644
edit
dl
rm
led-lm3530.h
3793
0644
edit
dl
rm
leds-bd2802.h
642
0644
edit
dl
rm
leds-lp3944.h
1099
0644
edit
dl
rm
leds-lp3952.h
2559
0644
edit
dl
rm
leds-pca9532.h
1031
0644
edit
dl
rm
leds-regulator.h
1317
0644
edit
dl
rm
leds-tca6507.h
1042
0644
edit
dl
rm
leds.h
15623
0644
edit
dl
rm
leds_pwm.h
407
0644
edit
dl
rm
libata.h
68540
0644
edit
dl
rm
libfdt.h
202
0644
edit
dl
rm
libfdt_env.h
491
0644
edit
dl
rm
libgcc.h
1099
0644
edit
dl
rm
libnvdimm.h
9873
0644
edit
dl
rm
libps2.h
2077
0644
edit
dl
rm
license.h
374
0644
edit
dl
rm
lightnvm.h
11980
0644
edit
dl
rm
limits.h
715
0644
edit
dl
rm
linear_range.h
1645
0644
edit
dl
rm
linkage.h
9331
0644
edit
dl
rm
linkmode.h
2559
0644
edit
dl
rm
linux_logo.h
1956
0644
edit
dl
rm
lis3lv02d.h
5125
0644
edit
dl
rm
list.h
32105
0644
edit
dl
rm
list_bl.h
4905
0644
edit
dl
rm
list_lru.h
8193
0644
edit
dl
rm
list_nulls.h
4322
0644
edit
dl
rm
list_sort.h
307
0644
edit
dl
rm
livepatch.h
9109
0644
edit
dl
rm
llc.h
749
0644
edit
dl
rm
llist.h
9368
0644
edit
dl
rm
local_lock.h
1362
0644
edit
dl
rm
local_lock_internal.h
3499
0644
edit
dl
rm
lockdep.h
21585
0644
edit
dl
rm
lockdep_types.h
5308
0644
edit
dl
rm
lockref.h
1440
0644
edit
dl
rm
log2.h
6542
0644
edit
dl
rm
logic_pio.h
3257
0644
edit
dl
rm
lp.h
2827
0644
edit
dl
rm
lru_cache.h
12722
0644
edit
dl
rm
lsm_audit.h
2791
0644
edit
dl
rm
lsm_hooks.h
70818
0644
edit
dl
rm
lsm_hook_defs.h
20455
0644
edit
dl
rm
lz4.h
27072
0644
edit
dl
rm
lzo.h
1404
0644
edit
dl
rm
mailbox_client.h
1837
0644
edit
dl
rm
mailbox_controller.h
5502
0644
edit
dl
rm
maple.h
2775
0644
edit
dl
rm
marvell_phy.h
1691
0644
edit
dl
rm
math.h
5185
0644
edit
dl
rm
math64.h
7662
0644
edit
dl
rm
max17040_battery.h
474
0644
edit
dl
rm
mbcache.h
2208
0644
edit
dl
rm
mbus.h
3168
0644
edit
dl
rm
mc6821.h
1209
0644
edit
dl
rm
mc146818rtc.h
4567
0644
edit
dl
rm
mcb.h
3975
0644
edit
dl
rm
mdev.h
5859
0644
edit
dl
rm
mdio-bitbang.h
1149
0644
edit
dl
rm
mdio-gpio.h
177
0644
edit
dl
rm
mdio-mux.h
1021
0644
edit
dl
rm
mdio.h
13730
0644
edit
dl
rm
mei_aux.h
929
0644
edit
dl
rm
mei_cl_bus.h
4196
0644
edit
dl
rm
memblock.h
21009
0644
edit
dl
rm
memcontrol.h
46243
0644
edit
dl
rm
memfd.h
365
0644
edit
dl
rm
memory.h
4080
0644
edit
dl
rm
memory_hotplug.h
10981
0644
edit
dl
rm
mempolicy.h
8084
0644
edit
dl
rm
mempool.h
3430
0644
edit
dl
rm
memregion.h
417
0644
edit
dl
rm
memremap.h
7818
0644
edit
dl
rm
memstick.h
9982
0644
edit
dl
rm
mem_encrypt.h
926
0644
edit
dl
rm
mhi.h
26908
0644
edit
dl
rm
mhi_ep.h
9866
0644
edit
dl
rm
micrel_phy.h
1522
0644
edit
dl
rm
microchipphy.h
3310
0644
edit
dl
rm
mic_bus.h
3272
0644
edit
dl
rm
migrate.h
6278
0644
edit
dl
rm
migrate_mode.h
758
0644
edit
dl
rm
mii.h
16283
0644
edit
dl
rm
mii_timestamper.h
3653
0644
edit
dl
rm
minmax.h
6373
0644
edit
dl
rm
min_heap.h
3377
0644
edit
dl
rm
miscdevice.h
2864
0644
edit
dl
rm
misc_cgroup.h
3007
0644
edit
dl
rm
mISDNdsp.h
1217
0644
edit
dl
rm
mISDNhw.h
5921
0644
edit
dl
rm
mISDNif.h
15276
0644
edit
dl
rm
mm-arch-hooks.h
679
0644
edit
dl
rm
mm.h
101557
0644
edit
dl
rm
mman.h
3357
0644
edit
dl
rm
mmap_lock.h
2086
0644
edit
dl
rm
mmdebug.h
2379
0644
edit
dl
rm
mmiotrace.h
3122
0644
edit
dl
rm
mmu_context.h
465
0644
edit
dl
rm
mmu_notifier.h
28462
0644
edit
dl
rm
mmzone.h
51615
0644
edit
dl
rm
mm_inline.h
3059
0644
edit
dl
rm
mm_types.h
26844
0644
edit
dl
rm
mm_types_task.h
2457
0644
edit
dl
rm
mnt_namespace.h
547
0644
edit
dl
rm
module.h
23659
0644
edit
dl
rm
moduleloader.h
3170
0644
edit
dl
rm
moduleparam.h
20275
0644
edit
dl
rm
module_signature.h
1250
0644
edit
dl
rm
mod_devicetable.h
22513
0644
edit
dl
rm
mount.h
3708
0644
edit
dl
rm
mpage.h
737
0644
edit
dl
rm
mpi.h
3381
0644
edit
dl
rm
mpls.h
394
0644
edit
dl
rm
mpls_iptunnel.h
178
0644
edit
dl
rm
mroute.h
1998
0644
edit
dl
rm
mroute6.h
2449
0644
edit
dl
rm
mroute_base.h
12433
0644
edit
dl
rm
msdos_fs.h
273
0644
edit
dl
rm
msdos_partition.h
1655
0644
edit
dl
rm
msg.h
395
0644
edit
dl
rm
msi.h
15665
0644
edit
dl
rm
mutex.h
7837
0644
edit
dl
rm
mv643xx.h
53657
0644
edit
dl
rm
mv643xx_eth.h
2001
0644
edit
dl
rm
mv643xx_i2c.h
545
0644
edit
dl
rm
mvebu-pmsu.h
520
0644
edit
dl
rm
mxm-wmi.h
1078
0644
edit
dl
rm
namei.h
3946
0644
edit
dl
rm
nd.h
7601
0644
edit
dl
rm
net.h
12405
0644
edit
dl
rm
netdevice.h
169526
0644
edit
dl
rm
netdev_features.h
10519
0644
edit
dl
rm
netfilter.h
12677
0644
edit
dl
rm
netfilter_bridge.h
1977
0644
edit
dl
rm
netfilter_defs.h
486
0644
edit
dl
rm
netfilter_ingress.h
1472
0644
edit
dl
rm
netfilter_ipv4.h
1077
0644
edit
dl
rm
netfilter_ipv6.h
3698
0644
edit
dl
rm
netlink.h
9170
0644
edit
dl
rm
netpoll.h
2601
0644
edit
dl
rm
nfs.h
1145
0644
edit
dl
rm
nfs3.h
260
0644
edit
dl
rm
nfs4.h
19527
0644
edit
dl
rm
nfsacl.h
1435
0644
edit
dl
rm
nfs_fs.h
18578
0644
edit
dl
rm
nfs_fs_i.h
308
0644
edit
dl
rm
nfs_fs_sb.h
10537
0644
edit
dl
rm
nfs_iostat.h
4285
0644
edit
dl
rm
nfs_page.h
6991
0644
edit
dl
rm
nfs_xdr.h
42502
0644
edit
dl
rm
nitro_enclaves.h
267
0644
edit
dl
rm
nl802154.h
4336
0644
edit
dl
rm
nls.h
3162
0644
edit
dl
rm
nmi.h
6758
0644
edit
dl
rm
node.h
4399
0644
edit
dl
rm
nodemask.h
17440
0644
edit
dl
rm
nospec.h
2187
0644
edit
dl
rm
notifier.h
8418
0644
edit
dl
rm
nsc_gpio.h
1459
0644
edit
dl
rm
nsproxy.h
2676
0644
edit
dl
rm
ns_common.h
301
0644
edit
dl
rm
ntb.h
53691
0644
edit
dl
rm
ntb_transport.h
3892
0644
edit
dl
rm
nubus.h
5674
0644
edit
dl
rm
numa.h
1004
0644
edit
dl
rm
nvme-fc-driver.h
47216
0644
edit
dl
rm
nvme-fc.h
9955
0644
edit
dl
rm
nvme-rdma.h
2535
0644
edit
dl
rm
nvme-tcp.h
4538
0644
edit
dl
rm
nvme.h
39128
0644
edit
dl
rm
nvmem-consumer.h
4454
0644
edit
dl
rm
nvmem-provider.h
3267
0644
edit
dl
rm
nvram.h
495
0644
edit
dl
rm
n_r3964.h
4155
0644
edit
dl
rm
objagg.h
1983
0644
edit
dl
rm
objtool.h
1155
0644
edit
dl
rm
of.h
43307
0644
edit
dl
rm
of_address.h
4603
0644
edit
dl
rm
of_clk.h
753
0644
edit
dl
rm
of_device.h
3227
0644
edit
dl
rm
of_dma.h
2353
0644
edit
dl
rm
of_fdt.h
4188
0644
edit
dl
rm
of_gpio.h
4053
0644
edit
dl
rm
of_graph.h
3636
0644
edit
dl
rm
of_iommu.h
505
0644
edit
dl
rm
of_irq.h
3691
0644
edit
dl
rm
of_mdio.h
3213
0644
edit
dl
rm
of_net.h
887
0644
edit
dl
rm
of_pci.h
915
0644
edit
dl
rm
of_pdt.h
1222
0644
edit
dl
rm
of_platform.h
3974
0644
edit
dl
rm
of_reserved_mem.h
2403
0644
edit
dl
rm
oid_registry.h
3966
0644
edit
dl
rm
olpc-ec.h
1104
0644
edit
dl
rm
omap-dma.h
10754
0644
edit
dl
rm
omap-dmaengine.h
583
0644
edit
dl
rm
omap-gpmc.h
3011
0644
edit
dl
rm
omap-iommu.h
685
0644
edit
dl
rm
omap-mailbox.h
777
0644
edit
dl
rm
omapfb.h
1246
0644
edit
dl
rm
once.h
1880
0644
edit
dl
rm
oom.h
3341
0644
edit
dl
rm
openvswitch.h
1019
0644
edit
dl
rm
oprofile.h
6246
0644
edit
dl
rm
osq_lock.h
1066
0644
edit
dl
rm
overflow.h
12269
0644
edit
dl
rm
padata.h
7431
0644
edit
dl
rm
page-flags-layout.h
3501
0644
edit
dl
rm
page-flags.h
28156
0644
edit
dl
rm
page-isolation.h
2124
0644
edit
dl
rm
pageblock-flags.h
3357
0644
edit
dl
rm
pagemap.h
24649
0644
edit
dl
rm
pagevec.h
2383
0644
edit
dl
rm
pagewalk.h
4167
0644
edit
dl
rm
page_counter.h
3447
0644
edit
dl
rm
page_ext.h
1722
0644
edit
dl
rm
page_idle.h
2683
0644
edit
dl
rm
page_owner.h
2361
0644
edit
dl
rm
page_ref.h
5361
0644
edit
dl
rm
page_reporting.h
834
0644
edit
dl
rm
parman.h
2934
0644
edit
dl
rm
parport.h
18273
0644
edit
dl
rm
parport_pc.h
6713
0644
edit
dl
rm
parser.h
1141
0644
edit
dl
rm
pata_arasan_cf_data.h
1250
0644
edit
dl
rm
patchkey.h
757
0644
edit
dl
rm
path.h
572
0644
edit
dl
rm
pch_dma.h
999
0644
edit
dl
rm
pci-acpi.h
4280
0644
edit
dl
rm
pci-ats.h
1802
0644
edit
dl
rm
pci-dma-compat.h
3750
0644
edit
dl
rm
pci-ecam.h
3358
0644
edit
dl
rm
pci-ep-cfs.h
957
0644
edit
dl
rm
pci-epc.h
7336
0644
edit
dl
rm
pci-epf.h
4868
0644
edit
dl
rm
pci-p2pdma.h
4049
0644
edit
dl
rm
pci.h
91798
0644
edit
dl
rm
pci_hotplug.h
4752
0644
edit
dl
rm
pci_ids.h
128248
0644
edit
dl
rm
pda_power.h
1151
0644
edit
dl
rm
pe.h
16204
0644
edit
dl
rm
percpu-defs.h
18609
0644
edit
dl
rm
percpu-refcount.h
11169
0644
edit
dl
rm
percpu-rwsem.h
4573
0644
edit
dl
rm
percpu.h
4849
0644
edit
dl
rm
percpu_counter.h
4372
0644
edit
dl
rm
perf_event.h
50787
0644
edit
dl
rm
perf_regs.h
1076
0644
edit
dl
rm
personality.h
393
0644
edit
dl
rm
pfn.h
666
0644
edit
dl
rm
pfn_t.h
3310
0644
edit
dl
rm
phonet.h
1146
0644
edit
dl
rm
phy.h
56386
0644
edit
dl
rm
phylink.h
23707
0644
edit
dl
rm
phy_fixed.h
1814
0644
edit
dl
rm
phy_led_triggers.h
1491
0644
edit
dl
rm
pid.h
6059
0644
edit
dl
rm
pid_namespace.h
2386
0644
edit
dl
rm
pim.h
2737
0644
edit
dl
rm
pipe_fs_i.h
6471
0644
edit
dl
rm
pkeys.h
961
0644
edit
dl
rm
pktcdvd.h
6011
0644
edit
dl
rm
pl320-ipc.h
758
0644
edit
dl
rm
platform_device.h
14160
0644
edit
dl
rm
platform_profile.h
1155
0644
edit
dl
rm
pldmfw.h
4879
0644
edit
dl
rm
plist.h
8894
0644
edit
dl
rm
pm-trace.h
940
0644
edit
dl
rm
pm.h
37480
0644
edit
dl
rm
pm2301_charger.h
1723
0644
edit
dl
rm
pmbus.h
1621
0644
edit
dl
rm
pmu.h
2392
0644
edit
dl
rm
pm_clock.h
2638
0644
edit
dl
rm
pm_domain.h
13293
0644
edit
dl
rm
pm_opp.h
11536
0644
edit
dl
rm
pm_qos.h
10662
0644
edit
dl
rm
pm_runtime.h
10329
0644
edit
dl
rm
pm_wakeirq.h
1518
0644
edit
dl
rm
pm_wakeup.h
7354
0644
edit
dl
rm
pnfs_osd_xdr.h
9490
0644
edit
dl
rm
pnp.h
15765
0644
edit
dl
rm
poison.h
2651
0644
edit
dl
rm
poll.h
4109
0644
edit
dl
rm
posix-clock.h
4660
0644
edit
dl
rm
posix-timers.h
6460
0644
edit
dl
rm
posix_acl.h
3167
0644
edit
dl
rm
posix_acl_xattr.h
1621
0644
edit
dl
rm
powercap.h
12889
0644
edit
dl
rm
power_supply.h
15025
0644
edit
dl
rm
ppp-comp.h
3172
0644
edit
dl
rm
ppp_channel.h
3146
0644
edit
dl
rm
ppp_defs.h
812
0644
edit
dl
rm
pps-gpio.h
1033
0644
edit
dl
rm
pps_kernel.h
3620
0644
edit
dl
rm
pr.h
566
0644
edit
dl
rm
prandom.h
3886
0644
edit
dl
rm
preempt.h
12232
0644
edit
dl
rm
prefetch.h
1740
0644
edit
dl
rm
prime_numbers.h
1384
0644
edit
dl
rm
printk.h
16908
0644
edit
dl
rm
prmt.h
143
0644
edit
dl
rm
processor.h
1889
0644
edit
dl
rm
proc_fs.h
6138
0644
edit
dl
rm
proc_ns.h
2897
0644
edit
dl
rm
profile.h
2743
0644
edit
dl
rm
projid.h
2269
0644
edit
dl
rm
property.h
17410
0644
edit
dl
rm
psci.h
1951
0644
edit
dl
rm
pseudo_fs.h
355
0644
edit
dl
rm
psi.h
1782
0644
edit
dl
rm
psi_types.h
3994
0644
edit
dl
rm
psp-platform-access.h
1722
0644
edit
dl
rm
psp-sev.h
18921
0644
edit
dl
rm
psp-tee.h
2316
0644
edit
dl
rm
psp.h
697
0644
edit
dl
rm
pstore.h
7764
0644
edit
dl
rm
pstore_ram.h
2980
0644
edit
dl
rm
pti.h
198
0644
edit
dl
rm
ptp_classify.h
5007
0644
edit
dl
rm
ptp_clock_kernel.h
12431
0644
edit
dl
rm
ptrace.h
15210
0644
edit
dl
rm
ptr_ring.h
16890
0644
edit
dl
rm
purgatory.h
589
0644
edit
dl
rm
pvclock_gtod.h
548
0644
edit
dl
rm
pwm.h
17341
0644
edit
dl
rm
pwm_backlight.h
802
0644
edit
dl
rm
pxa2xx_ssp.h
10470
0644
edit
dl
rm
pxa168_eth.h
728
0644
edit
dl
rm
qcom-geni-se.h
12471
0644
edit
dl
rm
qcom_scm.h
4381
0644
edit
dl
rm
qnx6_fs.h
3349
0644
edit
dl
rm
quicklist.h
2186
0644
edit
dl
rm
quota.h
19231
0644
edit
dl
rm
quotaops.h
10553
0644
edit
dl
rm
radix-tree.h
17978
0644
edit
dl
rm
raid_class.h
2149
0644
edit
dl
rm
ramfs.h
695
0644
edit
dl
rm
random.h
3855
0644
edit
dl
rm
range.h
775
0644
edit
dl
rm
ras.h
1211
0644
edit
dl
rm
ratelimit.h
1761
0644
edit
dl
rm
ratelimit_types.h
1170
0644
edit
dl
rm
rational.h
639
0644
edit
dl
rm
rbtree.h
9789
0644
edit
dl
rm
rbtree_augmented.h
10485
0644
edit
dl
rm
rbtree_latch.h
6815
0644
edit
dl
rm
rbtree_types.h
946
0644
edit
dl
rm
rculist.h
28444
0644
edit
dl
rm
rculist_bl.h
3374
0644
edit
dl
rm
rculist_nulls.h
5513
0644
edit
dl
rm
rcupdate.h
38548
0644
edit
dl
rm
rcupdate_trace.h
2882
0644
edit
dl
rm
rcupdate_wait.h
1769
0644
edit
dl
rm
rcutiny.h
4232
0644
edit
dl
rm
rcutree.h
3077
0644
edit
dl
rm
rcuwait.h
1900
0644
edit
dl
rm
rcu_node_tree.h
4468
0644
edit
dl
rm
rcu_segcblist.h
11292
0644
edit
dl
rm
rcu_sync.h
2312
0644
edit
dl
rm
reboot-mode.h
600
0644
edit
dl
rm
reboot.h
2098
0644
edit
dl
rm
reciprocal_div.h
3356
0644
edit
dl
rm
refcount.h
2799
0644
edit
dl
rm
regmap.h
54447
0644
edit
dl
rm
regset.h
15527
0644
edit
dl
rm
relay.h
8908
0644
edit
dl
rm
remoteproc.h
20078
0644
edit
dl
rm
resctrl.h
8891
0644
edit
dl
rm
reservation.h
9226
0644
edit
dl
rm
reset-controller.h
3067
0644
edit
dl
rm
reset.h
13739
0644
edit
dl
rm
resource.h
339
0644
edit
dl
rm
resource_ext.h
2542
0644
edit
dl
rm
restart_block.h
1114
0644
edit
dl
rm
rfkill.h
11040
0644
edit
dl
rm
rhashtable-types.h
3742
0644
edit
dl
rm
rhashtable.h
35278
0644
edit
dl
rm
rh_flags.h
905
0644
edit
dl
rm
rh_kabi.h
22633
0644
edit
dl
rm
rh_kabi_attributes.h
501
0644
edit
dl
rm
rh_kabi_aux.h
917
0644
edit
dl
rm
rh_kabi_memcg.h
3760
0644
edit
dl
rm
rh_tasklist_lock.h
959
0644
edit
dl
rm
rh_waived.h
441
0644
edit
dl
rm
ring_buffer.h
7371
0644
edit
dl
rm
rio.h
19687
0644
edit
dl
rm
rio_drv.h
15061
0644
edit
dl
rm
rio_ids.h
1317
0644
edit
dl
rm
rio_regs.h
19737
0644
edit
dl
rm
rmap.h
11037
0644
edit
dl
rm
rmi.h
12479
0644
edit
dl
rm
rndis.h
17269
0644
edit
dl
rm
rodata_test.h
559
0644
edit
dl
rm
root_dev.h
619
0644
edit
dl
rm
rpmsg.h
7117
0644
edit
dl
rm
rslib.h
3754
0644
edit
dl
rm
rtc.h
9427
0644
edit
dl
rm
rtmutex.h
3147
0644
edit
dl
rm
rtnetlink.h
4604
0644
edit
dl
rm
rtsx_common.h
1475
0644
edit
dl
rm
rtsx_pci.h
41135
0644
edit
dl
rm
rtsx_usb.h
16334
0644
edit
dl
rm
rwbase_rt.h
876
0644
edit
dl
rm
rwlock.h
4054
0644
edit
dl
rm
rwlock_api_smp.h
7736
0644
edit
dl
rm
rwlock_rt.h
3053
0644
edit
dl
rm
rwlock_types.h
1814
0644
edit
dl
rm
rwsem.h
7405
0644
edit
dl
rm
s3c_adc_battery.h
971
0644
edit
dl
rm
sa11x0-dma.h
572
0644
edit
dl
rm
sbitmap.h
20203
0644
edit
dl
rm
scatterlist.h
18003
0644
edit
dl
rm
scc.h
2905
0644
edit
dl
rm
sched.h
64576
0644
edit
dl
rm
sched_clock.h
1617
0644
edit
dl
rm
scif.h
60280
0644
edit
dl
rm
scmi_protocol.h
9284
0644
edit
dl
rm
scpi_protocol.h
2642
0644
edit
dl
rm
screen_info.h
191
0644
edit
dl
rm
scs.h
1828
0644
edit
dl
rm
sctp.h
24124
0644
edit
dl
rm
scx200.h
1863
0644
edit
dl
rm
scx200_gpio.h
2438
0644
edit
dl
rm
sdb.h
4270
0644
edit
dl
rm
sdla.h
7066
0644
edit
dl
rm
seccomp.h
2972
0644
edit
dl
rm
securebits.h
239
0644
edit
dl
rm
security.h
52185
0644
edit
dl
rm
sed-opal.h
1985
0644
edit
dl
rm
seg6.h
121
0644
edit
dl
rm
seg6_genl.h
136
0644
edit
dl
rm
seg6_hmac.h
136
0644
edit
dl
rm
seg6_iptunnel.h
148
0644
edit
dl
rm
seg6_local.h
100
0644
edit
dl
rm
selection.h
1595
0644
edit
dl
rm
sem.h
599
0644
edit
dl
rm
semaphore.h
1400
0644
edit
dl
rm
seqlock.h
39244
0644
edit
dl
rm
seqno-fence.h
4050
0644
edit
dl
rm
seq_buf.h
3405
0644
edit
dl
rm
seq_file.h
8291
0644
edit
dl
rm
seq_file_net.h
730
0644
edit
dl
rm
serdev.h
10101
0644
edit
dl
rm
serial.h
630
0644
edit
dl
rm
serial_8250.h
6581
0644
edit
dl
rm
serial_bcm63xx.h
4843
0644
edit
dl
rm
serial_core.h
18058
0644
edit
dl
rm
serial_max3100.h
1423
0644
edit
dl
rm
serial_pnx8xxx.h
2670
0644
edit
dl
rm
serial_s3c.h
8784
0644
edit
dl
rm
serial_sci.h
1611
0644
edit
dl
rm
serio.h
4528
0644
edit
dl
rm
set_memory.h
1497
0644
edit
dl
rm
sfi.h
5890
0644
edit
dl
rm
sfi_acpi.h
3472
0644
edit
dl
rm
sfp.h
16216
0644
edit
dl
rm
shdma-base.h
4520
0644
edit
dl
rm
shm.h
968
0644
edit
dl
rm
shmem_fs.h
5779
0644
edit
dl
rm
shrinker.h
3365
0644
edit
dl
rm
sh_clk.h
6098
0644
edit
dl
rm
sh_dma.h
3696
0644
edit
dl
rm
sh_eth.h
369
0644
edit
dl
rm
sh_intc.h
3506
0644
edit
dl
rm
sh_timer.h
172
0644
edit
dl
rm
signal.h
13513
0644
edit
dl
rm
signalfd.h
817
0644
edit
dl
rm
signal_types.h
1241
0644
edit
dl
rm
siox.h
2075
0644
edit
dl
rm
siphash.h
4738
0644
edit
dl
rm
sirfsoc_dma.h
162
0644
edit
dl
rm
sizes.h
1451
0644
edit
dl
rm
skbuff.h
138822
0644
edit
dl
rm
skb_array.h
5512
0644
edit
dl
rm
skmsg.h
13557
0644
edit
dl
rm
slab.h
25099
0644
edit
dl
rm
slab_def.h
3009
0644
edit
dl
rm
slimbus.h
5410
0644
edit
dl
rm
slub_def.h
6588
0644
edit
dl
rm
sm501-regs.h
12046
0644
edit
dl
rm
sm501.h
4743
0644
edit
dl
rm
smc91x.h
1604
0644
edit
dl
rm
smc911x.h
294
0644
edit
dl
rm
smp.h
7085
0644
edit
dl
rm
smpboot.h
2215
0644
edit
dl
rm
smp_types.h
1340
0644
edit
dl
rm
smsc911x.h
2340
0644
edit
dl
rm
smscphy.h
1283
0644
edit
dl
rm
socket.h
14427
0644
edit
dl
rm
sockptr.h
2279
0644
edit
dl
rm
sock_diag.h
2370
0644
edit
dl
rm
sonet.h
469
0644
edit
dl
rm
sony-laptop.h
1441
0644
edit
dl
rm
sonypi.h
2410
0644
edit
dl
rm
sort.h
247
0644
edit
dl
rm
sound.h
685
0644
edit
dl
rm
soundcard.h
1631
0644
edit
dl
rm
spinlock.h
15933
0644
edit
dl
rm
spinlock_api_smp.h
5346
0644
edit
dl
rm
spinlock_api_up.h
3394
0644
edit
dl
rm
spinlock_rt.h
4209
0644
edit
dl
rm
spinlock_types.h
1826
0644
edit
dl
rm
spinlock_types_raw.h
1726
0644
edit
dl
rm
spinlock_types_up.h
726
0644
edit
dl
rm
spinlock_up.h
2126
0644
edit
dl
rm
splice.h
2981
0644
edit
dl
rm
spmi.h
6094
0644
edit
dl
rm
sram.h
844
0644
edit
dl
rm
srcu.h
7858
0644
edit
dl
rm
srcutiny.h
3411
0644
edit
dl
rm
srcutree.h
5437
0644
edit
dl
rm
ssbi.h
1140
0644
edit
dl
rm
stackdepot.h
1309
0644
edit
dl
rm
stackprotector.h
361
0644
edit
dl
rm
stacktrace.h
4301
0644
edit
dl
rm
start_kernel.h
334
0644
edit
dl
rm
stat.h
1212
0644
edit
dl
rm
statfs.h
1346
0644
edit
dl
rm
static_call.h
7034
0644
edit
dl
rm
static_call_types.h
535
0644
edit
dl
rm
static_key.h
30
0644
edit
dl
rm
stddef.h
3275
0644
edit
dl
rm
stm.h
4453
0644
edit
dl
rm
stmmac.h
7607
0644
edit
dl
rm
stmp3xxx_rtc_wdt.h
332
0644
edit
dl
rm
stmp_device.h
619
0644
edit
dl
rm
stop_machine.h
4842
0644
edit
dl
rm
string.h
9939
0644
edit
dl
rm
stringhash.h
2715
0644
edit
dl
rm
stringify.h
341
0644
edit
dl
rm
string_helpers.h
3082
0644
edit
dl
rm
sudmac.h
1269
0644
edit
dl
rm
sungem_phy.h
4031
0644
edit
dl
rm
sunserialcore.h
1102
0644
edit
dl
rm
sunxi-rsb.h
2955
0644
edit
dl
rm
superhyway.h
2878
0644
edit
dl
rm
suspend.h
21483
0644
edit
dl
rm
svga.h
3837
0644
edit
dl
rm
sw842.h
328
0644
edit
dl
rm
swab.h
569
0644
edit
dl
rm
swait.h
10284
0644
edit
dl
rm
swap.h
23109
0644
edit
dl
rm
swapfile.h
556
0644
edit
dl
rm
swapops.h
8895
0644
edit
dl
rm
swap_cgroup.h
971
0644
edit
dl
rm
swap_slots.h
841
0644
edit
dl
rm
swiotlb.h
5472
0644
edit
dl
rm
switchtec.h
11530
0644
edit
dl
rm
sxgbe_platform.h
1371
0644
edit
dl
rm
synclink.h
989
0644
edit
dl
rm
sync_core.h
581
0644
edit
dl
rm
sync_file.h
1606
0644
edit
dl
rm
sys.h
960
0644
edit
dl
rm
syscalls.h
51913
0644
edit
dl
rm
syscore_ops.h
635
0644
edit
dl
rm
sysctl.h
7770
0644
edit
dl
rm
sysfs.h
18090
0644
edit
dl
rm
syslog.h
1931
0644
edit
dl
rm
sysrq.h
1896
0644
edit
dl
rm
sysv_fs.h
9250
0644
edit
dl
rm
sys_soc.h
1263
0644
edit
dl
rm
t10-pi.h
1538
0644
edit
dl
rm
taskstats_kern.h
957
0644
edit
dl
rm
task_io_accounting.h
1159
0644
edit
dl
rm
task_io_accounting_ops.h
2610
0644
edit
dl
rm
task_work.h
718
0644
edit
dl
rm
tboot.h
4089
0644
edit
dl
rm
tc.h
3489
0644
edit
dl
rm
tca6416_keypad.h
847
0644
edit
dl
rm
tcp.h
18092
0644
edit
dl
rm
tee_drv.h
16685
0644
edit
dl
rm
textsearch.h
4842
0644
edit
dl
rm
textsearch_fsm.h
1214
0644
edit
dl
rm
tfrc.h
1933
0644
edit
dl
rm
thermal.h
19928
0644
edit
dl
rm
thinkpad_acpi.h
320
0644
edit
dl
rm
threads.h
1309
0644
edit
dl
rm
thread_info.h
4869
0644
edit
dl
rm
thunderbolt.h
21435
0644
edit
dl
rm
ti-emif-sram.h
5150
0644
edit
dl
rm
tick.h
9612
0644
edit
dl
rm
tifm.h
4920
0644
edit
dl
rm
timb_dma.h
1784
0644
edit
dl
rm
timb_gpio.h
1308
0644
edit
dl
rm
time.h
3916
0644
edit
dl
rm
time32.h
6068
0644
edit
dl
rm
time64.h
4055
0644
edit
dl
rm
timecounter.h
4693
0644
edit
dl
rm
timekeeper_internal.h
5455
0644
edit
dl
rm
timekeeping.h
7381
0644
edit
dl
rm
timekeeping32.h
2055
0644
edit
dl
rm
timer.h
7092
0644
edit
dl
rm
timerfd.h
508
0644
edit
dl
rm
timeriomem-rng.h
475
0644
edit
dl
rm
timerqueue.h
1498
0644
edit
dl
rm
timex.h
6466
0644
edit
dl
rm
time_namespace.h
3217
0644
edit
dl
rm
ti_wilink_st.h
14404
0644
edit
dl
rm
tnum.h
3467
0644
edit
dl
rm
topology.h
6284
0644
edit
dl
rm
torture.h
4953
0644
edit
dl
rm
toshiba.h
904
0644
edit
dl
rm
tpm.h
11345
0644
edit
dl
rm
tpm_command.h
847
0644
edit
dl
rm
tpm_eventlog.h
6686
0644
edit
dl
rm
trace.h
1311
0644
edit
dl
rm
tracefs.h
1221
0644
edit
dl
rm
tracehook.h
7233
0644
edit
dl
rm
tracepoint-defs.h
905
0644
edit
dl
rm
tracepoint.h
18003
0644
edit
dl
rm
trace_clock.h
667
0644
edit
dl
rm
trace_events.h
21035
0644
edit
dl
rm
trace_seq.h
4185
0644
edit
dl
rm
transport_class.h
2570
0644
edit
dl
rm
ts-nbus.h
532
0644
edit
dl
rm
tsacct_kern.h
1230
0644
edit
dl
rm
tty.h
28822
0644
edit
dl
rm
tty_driver.h
16017
0644
edit
dl
rm
tty_flip.h
1545
0644
edit
dl
rm
tty_ldisc.h
7937
0644
edit
dl
rm
typecheck.h
782
0644
edit
dl
rm
types.h
5660
0644
edit
dl
rm
u64_stats_sync.h
5957
0644
edit
dl
rm
uaccess.h
13715
0644
edit
dl
rm
ucb1400.h
4367
0644
edit
dl
rm
ucs2_string.h
662
0644
edit
dl
rm
udp.h
5552
0644
edit
dl
rm
uidgid.h
4171
0644
edit
dl
rm
uio.h
9756
0644
edit
dl
rm
uio_driver.h
4191
0644
edit
dl
rm
umh.h
1837
0644
edit
dl
rm
units.h
2685
0644
edit
dl
rm
uprobes.h
6783
0644
edit
dl
rm
usb.h
81721
0644
edit
dl
rm
usbdevice_fs.h
2234
0644
edit
dl
rm
usb_usual.h
3671
0644
edit
dl
rm
user-return-notifier.h
1205
0644
edit
dl
rm
user.h
22
0644
edit
dl
rm
userfaultfd_k.h
4651
0644
edit
dl
rm
usermode_driver.h
515
0644
edit
dl
rm
user_namespace.h
5084
0644
edit
dl
rm
util_macros.h
1197
0644
edit
dl
rm
uts.h
388
0644
edit
dl
rm
utsname.h
1828
0644
edit
dl
rm
uuid.h
2833
0644
edit
dl
rm
uwb.h
25827
0644
edit
dl
rm
vbox_utils.h
1675
0644
edit
dl
rm
vdpa.h
15756
0644
edit
dl
rm
verification.h
1996
0644
edit
dl
rm
vermagic.h
1159
0644
edit
dl
rm
vexpress.h
1477
0644
edit
dl
rm
vfio.h
7332
0644
edit
dl
rm
vfs.h
116
0644
edit
dl
rm
vgaarb.h
3972
0644
edit
dl
rm
vga_switcheroo.h
8828
0644
edit
dl
rm
vhost_iotlb.h
1369
0644
edit
dl
rm
via-core.h
7442
0644
edit
dl
rm
via-gpio.h
334
0644
edit
dl
rm
via.h
932
0644
edit
dl
rm
via_i2c.h
1516
0644
edit
dl
rm
videodev2.h
2769
0644
edit
dl
rm
virtio.h
6915
0644
edit
dl
rm
virtio_byteorder.h
1491
0644
edit
dl
rm
virtio_caif.h
492
0644
edit
dl
rm
virtio_config.h
15517
0644
edit
dl
rm
virtio_console.h
1974
0644
edit
dl
rm
virtio_dma_buf.h
1147
0644
edit
dl
rm
virtio_net.h
4964
0644
edit
dl
rm
virtio_pci_modern.h
3379
0644
edit
dl
rm
virtio_ring.h
3035
0644
edit
dl
rm
virtio_vsock.h
4603
0644
edit
dl
rm
visorbus.h
12525
0644
edit
dl
rm
vlynq.h
3969
0644
edit
dl
rm
vmacache.h
722
0644
edit
dl
rm
vmalloc.h
8367
0644
edit
dl
rm
vme.h
5794
0644
edit
dl
rm
vmpressure.h
1736
0644
edit
dl
rm
vmstat.h
14739
0644
edit
dl
rm
vmw_vmci_api.h
2954
0644
edit
dl
rm
vmw_vmci_defs.h
30928
0644
edit
dl
rm
vm_event_item.h
3385
0644
edit
dl
rm
vringh.h
9486
0644
edit
dl
rm
vt.h
611
0644
edit
dl
rm
vtime.h
4174
0644
edit
dl
rm
vt_buffer.h
1524
0644
edit
dl
rm
vt_kern.h
6179
0644
edit
dl
rm
w1-gpio.h
639
0644
edit
dl
rm
w1.h
9345
0644
edit
dl
rm
wait.h
43292
0644
edit
dl
rm
wait_bit.h
11500
0644
edit
dl
rm
wanrouter.h
210
0644
edit
dl
rm
watchdog.h
8002
0644
edit
dl
rm
win_minmax.h
832
0644
edit
dl
rm
wireless.h
1607
0644
edit
dl
rm
wkup_m3_ipc.h
1565
0644
edit
dl
rm
wl12xx.h
1422
0644
edit
dl
rm
wm97xx.h
10860
0644
edit
dl
rm
wmi.h
1989
0644
edit
dl
rm
workqueue.h
21856
0644
edit
dl
rm
writeback.h
13374
0644
edit
dl
rm
ww_mutex.h
13037
0644
edit
dl
rm
xarray.h
59101
0644
edit
dl
rm
xattr.h
3572
0644
edit
dl
rm
xxhash.h
7829
0644
edit
dl
rm
xz.h
11431
0644
edit
dl
rm
yam.h
2888
0644
edit
dl
rm
z2_battery.h
318
0644
edit
dl
rm
zbud.h
740
0644
edit
dl
rm
zconf.h
1770
0644
edit
dl
rm
zlib.h
28784
0644
edit
dl
rm
zorro.h
4030
0644
edit
dl
rm
zpool.h
3102
0644
edit
dl
rm
zsmalloc.h
1730
0644
edit
dl
rm
zstd.h
49806
0644
edit
dl
rm
zutil.h
2793
0644
edit
dl
rm
Edit:
/usr/src/kernels/4.18.0-553.157.1.el8_10.x86_64/include/linux/jbd2.h
(47971B)
/* * linux/include/linux/jbd2.h * * Written by Stephen C. Tweedie <sct@redhat.com> * * Copyright 1998-2000 Red Hat, Inc --- All Rights Reserved * * This file is part of the Linux kernel and is made available under * the terms of the GNU General Public License, version 2, or at your * option, any later version, incorporated herein by reference. * * Definitions for transaction data structures for the buffer cache * filesystem journaling support. */ #ifndef _LINUX_JBD2_H #define _LINUX_JBD2_H /* Allow this file to be included directly into e2fsprogs */ #ifndef __KERNEL__ #include "jfs_compat.h" #define JBD2_DEBUG #else #include <linux/types.h> #include <linux/buffer_head.h> #include <linux/journal-head.h> #include <linux/stddef.h> #include <linux/mutex.h> #include <linux/timer.h> #include <linux/slab.h> #include <linux/bit_spinlock.h> #include <linux/blkdev.h> #include <crypto/hash.h> #endif #define journal_oom_retry 1 /* * Define JBD2_PARANIOD_IOFAIL to cause a kernel BUG() if ext4 finds * certain classes of error which can occur due to failed IOs. Under * normal use we want ext4 to continue after such errors, because * hardware _can_ fail, but for debugging purposes when running tests on * known-good hardware we may want to trap these errors. */ #undef JBD2_PARANOID_IOFAIL /* * The default maximum commit age, in seconds. */ #define JBD2_DEFAULT_MAX_COMMIT_AGE 5 #ifdef CONFIG_JBD2_DEBUG /* * Define JBD2_EXPENSIVE_CHECKING to enable more expensive internal * consistency checks. By default we don't do this unless * CONFIG_JBD2_DEBUG is on. */ #define JBD2_EXPENSIVE_CHECKING extern ushort jbd2_journal_enable_debug; void __jbd2_debug(int level, const char *file, const char *func, unsigned int line, const char *fmt, ...); #define jbd_debug(n, fmt, a...) \ __jbd2_debug((n), __FILE__, __func__, __LINE__, (fmt), ##a) #else #define jbd_debug(n, fmt, a...) /**/ #endif extern void *jbd2_alloc(size_t size, gfp_t flags); extern void jbd2_free(void *ptr, size_t size); #define JBD2_MIN_JOURNAL_BLOCKS 1024 #ifdef __KERNEL__ /** * typedef handle_t - The handle_t type represents a single atomic update being performed by some process. * * All filesystem modifications made by the process go * through this handle. Recursive operations (such as quota operations) * are gathered into a single update. * * The buffer credits field is used to account for journaled buffers * being modified by the running process. To ensure that there is * enough log space for all outstanding operations, we need to limit the * number of outstanding buffers possible at any time. When the * operation completes, any buffer credits not used are credited back to * the transaction, so that at all times we know how many buffers the * outstanding updates on a transaction might possibly touch. * * This is an opaque datatype. **/ typedef struct jbd2_journal_handle handle_t; /* Atomic operation type */ /** * typedef journal_t - The journal_t maintains all of the journaling state information for a single filesystem. * * journal_t is linked to from the fs superblock structure. * * We use the journal_t to keep track of all outstanding transaction * activity on the filesystem, and to manage the state of the log * writing process. * * This is an opaque datatype. **/ typedef struct journal_s journal_t; /* Journal control structure */ #endif /* * Internal structures used by the logging mechanism: */ #define JBD2_MAGIC_NUMBER 0xc03b3998U /* The first 4 bytes of /dev/random! */ /* * On-disk structures */ /* * Descriptor block types: */ #define JBD2_DESCRIPTOR_BLOCK 1 #define JBD2_COMMIT_BLOCK 2 #define JBD2_SUPERBLOCK_V1 3 #define JBD2_SUPERBLOCK_V2 4 #define JBD2_REVOKE_BLOCK 5 /* * Standard header for all descriptor blocks: */ typedef struct journal_header_s { __be32 h_magic; __be32 h_blocktype; __be32 h_sequence; } journal_header_t; /* * Checksum types. */ #define JBD2_CRC32_CHKSUM 1 #define JBD2_MD5_CHKSUM 2 #define JBD2_SHA1_CHKSUM 3 #define JBD2_CRC32C_CHKSUM 4 #define JBD2_CRC32_CHKSUM_SIZE 4 #define JBD2_CHECKSUM_BYTES (32 / sizeof(u32)) /* * Commit block header for storing transactional checksums: * * NOTE: If FEATURE_COMPAT_CHECKSUM (checksum v1) is set, the h_chksum* * fields are used to store a checksum of the descriptor and data blocks. * * If FEATURE_INCOMPAT_CSUM_V2 (checksum v2) is set, then the h_chksum * field is used to store crc32c(uuid+commit_block). Each journal metadata * block gets its own checksum, and data block checksums are stored in * journal_block_tag (in the descriptor). The other h_chksum* fields are * not used. * * If FEATURE_INCOMPAT_CSUM_V3 is set, the descriptor block uses * journal_block_tag3_t to store a full 32-bit checksum. Everything else * is the same as v2. * * Checksum v1, v2, and v3 are mutually exclusive features. */ struct commit_header { __be32 h_magic; __be32 h_blocktype; __be32 h_sequence; unsigned char h_chksum_type; unsigned char h_chksum_size; unsigned char h_padding[2]; __be32 h_chksum[JBD2_CHECKSUM_BYTES]; __be64 h_commit_sec; __be32 h_commit_nsec; }; /* * The block tag: used to describe a single buffer in the journal. * t_blocknr_high is only used if INCOMPAT_64BIT is set, so this * raw struct shouldn't be used for pointer math or sizeof() - use * journal_tag_bytes(journal) instead to compute this. */ typedef struct journal_block_tag3_s { __be32 t_blocknr; /* The on-disk block number */ __be32 t_flags; /* See below */ __be32 t_blocknr_high; /* most-significant high 32bits. */ __be32 t_checksum; /* crc32c(uuid+seq+block) */ } journal_block_tag3_t; typedef struct journal_block_tag_s { __be32 t_blocknr; /* The on-disk block number */ __be16 t_checksum; /* truncated crc32c(uuid+seq+block) */ __be16 t_flags; /* See below */ __be32 t_blocknr_high; /* most-significant high 32bits. */ } journal_block_tag_t; /* Tail of descriptor or revoke block, for checksumming */ struct jbd2_journal_block_tail { __be32 t_checksum; /* crc32c(uuid+descr_block) */ }; /* * The revoke descriptor: used on disk to describe a series of blocks to * be revoked from the log */ typedef struct jbd2_journal_revoke_header_s { journal_header_t r_header; __be32 r_count; /* Count of bytes used in the block */ } jbd2_journal_revoke_header_t; /* Definitions for the journal tag flags word: */ #define JBD2_FLAG_ESCAPE 1 /* on-disk block is escaped */ #define JBD2_FLAG_SAME_UUID 2 /* block has same uuid as previous */ #define JBD2_FLAG_DELETED 4 /* block deleted by this transaction */ #define JBD2_FLAG_LAST_TAG 8 /* last tag in this descriptor block */ /* * The journal superblock. All fields are in big-endian byte order. */ typedef struct journal_superblock_s { /* 0x0000 */ journal_header_t s_header; /* 0x000C */ /* Static information describing the journal */ __be32 s_blocksize; /* journal device blocksize */ __be32 s_maxlen; /* total blocks in journal file */ __be32 s_first; /* first block of log information */ /* 0x0018 */ /* Dynamic information describing the current state of the log */ __be32 s_sequence; /* first commit ID expected in log */ __be32 s_start; /* blocknr of start of log */ /* 0x0020 */ /* Error value, as set by jbd2_journal_abort(). */ __be32 s_errno; /* 0x0024 */ /* Remaining fields are only valid in a version-2 superblock */ __be32 s_feature_compat; /* compatible feature set */ __be32 s_feature_incompat; /* incompatible feature set */ __be32 s_feature_ro_compat; /* readonly-compatible feature set */ /* 0x0030 */ __u8 s_uuid[16]; /* 128-bit uuid for journal */ /* 0x0040 */ __be32 s_nr_users; /* Nr of filesystems sharing log */ __be32 s_dynsuper; /* Blocknr of dynamic superblock copy*/ /* 0x0048 */ __be32 s_max_transaction; /* Limit of journal blocks per trans.*/ __be32 s_max_trans_data; /* Limit of data blocks per trans. */ /* 0x0050 */ __u8 s_checksum_type; /* checksum type */ __u8 s_padding2[3]; __u32 s_padding[42]; __be32 s_checksum; /* crc32c(superblock) */ /* 0x0100 */ __u8 s_users[16*48]; /* ids of all fs'es sharing the log */ /* 0x0400 */ } journal_superblock_t; /* Use the jbd2_{has,set,clear}_feature_* helpers; these will be removed */ #define JBD2_HAS_COMPAT_FEATURE(j,mask) \ ((j)->j_format_version >= 2 && \ ((j)->j_superblock->s_feature_compat & cpu_to_be32((mask)))) #define JBD2_HAS_RO_COMPAT_FEATURE(j,mask) \ ((j)->j_format_version >= 2 && \ ((j)->j_superblock->s_feature_ro_compat & cpu_to_be32((mask)))) #define JBD2_HAS_INCOMPAT_FEATURE(j,mask) \ ((j)->j_format_version >= 2 && \ ((j)->j_superblock->s_feature_incompat & cpu_to_be32((mask)))) #define JBD2_FEATURE_COMPAT_CHECKSUM 0x00000001 #define JBD2_FEATURE_INCOMPAT_REVOKE 0x00000001 #define JBD2_FEATURE_INCOMPAT_64BIT 0x00000002 #define JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT 0x00000004 #define JBD2_FEATURE_INCOMPAT_CSUM_V2 0x00000008 #define JBD2_FEATURE_INCOMPAT_CSUM_V3 0x00000010 /* See "journal feature predicate functions" below */ /* Features known to this kernel version: */ #define JBD2_KNOWN_COMPAT_FEATURES JBD2_FEATURE_COMPAT_CHECKSUM #define JBD2_KNOWN_ROCOMPAT_FEATURES 0 #define JBD2_KNOWN_INCOMPAT_FEATURES (JBD2_FEATURE_INCOMPAT_REVOKE | \ JBD2_FEATURE_INCOMPAT_64BIT | \ JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT | \ JBD2_FEATURE_INCOMPAT_CSUM_V2 | \ JBD2_FEATURE_INCOMPAT_CSUM_V3) #ifdef __KERNEL__ #include <linux/fs.h> #include <linux/sched.h> enum jbd_state_bits { BH_JBD /* Has an attached ext3 journal_head */ = BH_PrivateStart, BH_JWrite, /* Being written to log (@@@ DEBUGGING) */ BH_Freed, /* Has been freed (truncated) */ BH_Revoked, /* Has been revoked from the log */ BH_RevokeValid, /* Revoked flag is valid */ BH_JBDDirty, /* Is dirty but journaled */ BH_State, /* Pins most journal_head state */ BH_JournalHead, /* Pins bh->b_private and jh->b_bh */ BH_Shadow, /* IO on shadow buffer is running */ BH_Verified, /* Metadata block has been verified ok */ BH_JBDPrivateStart, /* First bit available for private use by FS */ }; BUFFER_FNS(JBD, jbd) BUFFER_FNS(JWrite, jwrite) BUFFER_FNS(JBDDirty, jbddirty) TAS_BUFFER_FNS(JBDDirty, jbddirty) BUFFER_FNS(Revoked, revoked) TAS_BUFFER_FNS(Revoked, revoked) BUFFER_FNS(RevokeValid, revokevalid) TAS_BUFFER_FNS(RevokeValid, revokevalid) BUFFER_FNS(Freed, freed) BUFFER_FNS(Shadow, shadow) BUFFER_FNS(Verified, verified) static inline struct buffer_head *jh2bh(struct journal_head *jh) { return jh->b_bh; } static inline struct journal_head *bh2jh(struct buffer_head *bh) { return bh->b_private; } static inline void jbd_lock_bh_state(struct buffer_head *bh) { bit_spin_lock(BH_State, &bh->b_state); } static inline int jbd_trylock_bh_state(struct buffer_head *bh) { return bit_spin_trylock(BH_State, &bh->b_state); } static inline int jbd_is_locked_bh_state(struct buffer_head *bh) { return bit_spin_is_locked(BH_State, &bh->b_state); } static inline void jbd_unlock_bh_state(struct buffer_head *bh) { bit_spin_unlock(BH_State, &bh->b_state); } static inline void jbd_lock_bh_journal_head(struct buffer_head *bh) { bit_spin_lock(BH_JournalHead, &bh->b_state); } static inline void jbd_unlock_bh_journal_head(struct buffer_head *bh) { bit_spin_unlock(BH_JournalHead, &bh->b_state); } #define J_ASSERT(assert) BUG_ON(!(assert)) #define J_ASSERT_BH(bh, expr) J_ASSERT(expr) #define J_ASSERT_JH(jh, expr) J_ASSERT(expr) #if defined(JBD2_PARANOID_IOFAIL) #define J_EXPECT(expr, why...) J_ASSERT(expr) #define J_EXPECT_BH(bh, expr, why...) J_ASSERT_BH(bh, expr) #define J_EXPECT_JH(jh, expr, why...) J_ASSERT_JH(jh, expr) #else #define __journal_expect(expr, why...) \ ({ \ int val = (expr); \ if (!val) { \ printk(KERN_ERR \ "JBD2 unexpected failure: %s: %s;\n", \ __func__, #expr); \ printk(KERN_ERR why "\n"); \ } \ val; \ }) #define J_EXPECT(expr, why...) __journal_expect(expr, ## why) #define J_EXPECT_BH(bh, expr, why...) __journal_expect(expr, ## why) #define J_EXPECT_JH(jh, expr, why...) __journal_expect(expr, ## why) #endif /* Flags in jbd_inode->i_flags */ #define __JI_COMMIT_RUNNING 0 #define __JI_WRITE_DATA 1 #define __JI_WAIT_DATA 2 /* * Commit of the inode data in progress. We use this flag to protect us from * concurrent deletion of inode. We cannot use reference to inode for this * since we cannot afford doing last iput() on behalf of kjournald */ #define JI_COMMIT_RUNNING (1 << __JI_COMMIT_RUNNING) /* Write allocated dirty buffers in this inode before commit */ #define JI_WRITE_DATA (1 << __JI_WRITE_DATA) /* Wait for outstanding data writes for this inode before commit */ #define JI_WAIT_DATA (1 << __JI_WAIT_DATA) /** * struct jbd_inode - The jbd_inode type is the structure linking inodes in * ordered mode present in a transaction so that we can sync them during commit. */ struct jbd2_inode { /** * @i_transaction: * * Which transaction does this inode belong to? Either the running * transaction or the committing one. [j_list_lock] */ transaction_t *i_transaction; /** * @i_next_transaction: * * Pointer to the running transaction modifying inode's data in case * there is already a committing transaction touching it. [j_list_lock] */ transaction_t *i_next_transaction; /** * @i_list: List of inodes in the i_transaction [j_list_lock] */ struct list_head i_list; /** * @i_vfs_inode: * * VFS inode this inode belongs to [constant for lifetime of structure] */ struct inode *i_vfs_inode; /** * @i_flags: Flags of inode [j_list_lock] */ unsigned long i_flags; /** * @i_dirty_start: * * Offset in bytes where the dirty range for this inode starts. * [j_list_lock] */ loff_t i_dirty_start; /** * @i_dirty_end: * * Inclusive offset in bytes where the dirty range for this inode * ends. [j_list_lock] */ loff_t i_dirty_end; }; struct jbd2_revoke_table_s; /** * struct handle_s - The handle_s type is the concrete type associated with * handle_t. * @h_transaction: Which compound transaction is this update a part of? * @h_journal: Which journal handle belongs to - used iff h_reserved set. * @h_rsv_handle: Handle reserved for finishing the logical operation. * @h_total_credits: Number of remaining buffers we are allowed to add to * journal. These are dirty buffers and revoke descriptor blocks. * @h_revoke_credits: Number of remaining revoke records available for handle * @h_ref: Reference count on this handle. * @h_err: Field for caller's use to track errors through large fs operations. * @h_sync: Flag for sync-on-close. * @h_jdata: Flag to force data journaling. * @h_reserved: Flag for handle for reserved credits. * @h_aborted: Flag indicating fatal error on handle. * @h_type: For handle statistics. * @h_line_no: For handle statistics. * @h_start_jiffies: Handle Start time. * @h_requested_credits: Holds @h_total_credits after handle is started. * @h_revoke_credits_requested: Holds @h_revoke_credits after handle is started. * @saved_alloc_context: Saved context while transaction is open. **/ /* Docbook can't yet cope with the bit fields, but will leave the documentation * in so it can be fixed later. */ struct jbd2_journal_handle { union { transaction_t *h_transaction; /* Which journal handle belongs to - used iff h_reserved set */ journal_t *h_journal; }; handle_t *h_rsv_handle; int h_total_credits; int h_revoke_credits; int h_revoke_credits_requested; int h_ref; int h_err; /* Flags [no locking] */ unsigned int h_sync: 1; unsigned int h_jdata: 1; unsigned int h_reserved: 1; unsigned int h_aborted: 1; unsigned int h_type: 8; unsigned int h_line_no: 16; unsigned long h_start_jiffies; unsigned int h_requested_credits; unsigned int saved_alloc_context; }; /* * Some stats for checkpoint phase */ struct transaction_chp_stats_s { unsigned long cs_chp_time; __u32 cs_forced_to_close; __u32 cs_written; __u32 cs_dropped; }; /* The transaction_t type is the guts of the journaling mechanism. It * tracks a compound transaction through its various states: * * RUNNING: accepting new updates * LOCKED: Updates still running but we don't accept new ones * RUNDOWN: Updates are tidying up but have finished requesting * new buffers to modify (state not used for now) * FLUSH: All updates complete, but we are still writing to disk * COMMIT: All data on disk, writing commit record * FINISHED: We still have to keep the transaction for checkpointing. * * The transaction keeps track of all of the buffers modified by a * running transaction, and all of the buffers committed but not yet * flushed to home for finished transactions. */ /* * Lock ranking: * * j_list_lock * ->jbd_lock_bh_journal_head() (This is "innermost") * * j_state_lock * ->jbd_lock_bh_state() * * jbd_lock_bh_state() * ->j_list_lock * * j_state_lock * ->t_handle_lock * * j_state_lock * ->j_list_lock (journal_unmap_buffer) * */ struct transaction_s { /* Pointer to the journal for this transaction. [no locking] */ journal_t *t_journal; /* Sequence number for this transaction [no locking] */ tid_t t_tid; /* * Transaction's current state * [no locking - only kjournald2 alters this] * [j_list_lock] guards transition of a transaction into T_FINISHED * state and subsequent call of __jbd2_journal_drop_transaction() * FIXME: needs barriers * KLUDGE: [use j_state_lock] */ enum { T_RUNNING, T_LOCKED, T_SWITCH, T_FLUSH, T_COMMIT, T_COMMIT_DFLUSH, T_COMMIT_JFLUSH, T_COMMIT_CALLBACK, T_FINISHED } t_state; /* * Where in the log does this transaction's commit start? [no locking] */ unsigned long t_log_start; /* Number of buffers on the t_buffers list [j_list_lock] */ int t_nr_buffers; /* * Doubly-linked circular list of all buffers reserved but not yet * modified by this transaction [j_list_lock] */ struct journal_head *t_reserved_list; /* * Doubly-linked circular list of all metadata buffers owned by this * transaction [j_list_lock] */ struct journal_head *t_buffers; /* * Doubly-linked circular list of all forget buffers (superseded * buffers which we can un-checkpoint once this transaction commits) * [j_list_lock] */ struct journal_head *t_forget; /* * Doubly-linked circular list of all buffers still to be flushed before * this transaction can be checkpointed. [j_list_lock] */ struct journal_head *t_checkpoint_list; /* * Doubly-linked circular list of all buffers submitted for IO while * checkpointing. [j_list_lock] */ struct journal_head *t_checkpoint_io_list; /* * Doubly-linked circular list of metadata buffers being shadowed by log * IO. The IO buffers on the iobuf list and the shadow buffers on this * list match each other one for one at all times. [j_list_lock] */ struct journal_head *t_shadow_list; /* * List of inodes whose data we've modified in data=ordered mode. * [j_list_lock] */ struct list_head t_inode_list; /* * Protects info related to handles */ spinlock_t t_handle_lock; /* * Longest time some handle had to wait for running transaction */ unsigned long t_max_wait; /* * When transaction started */ unsigned long t_start; /* * When commit was requested */ unsigned long t_requested; /* * Checkpointing stats [j_checkpoint_sem] */ struct transaction_chp_stats_s t_chp_stats; /* * Number of outstanding updates running on this transaction * [none] */ atomic_t t_updates; /* * Number of blocks reserved for this transaction in the journal. * This is including all credits reserved when starting transaction * handles as well as all journal descriptor blocks needed for this * transaction. [none] */ atomic_t t_outstanding_credits; /* * Number of revoke records for this transaction added by already * stopped handles. [none] */ atomic_t t_outstanding_revokes; /* * How many handles used this transaction? [none] */ atomic_t t_handle_count; /* * Forward and backward links for the circular list of all transactions * awaiting checkpoint. [j_list_lock] */ transaction_t *t_cpnext, *t_cpprev; /* * When will the transaction expire (become due for commit), in jiffies? * [no locking] */ unsigned long t_expires; /* * When this transaction started, in nanoseconds [no locking] */ ktime_t t_start_time; /* * This transaction is being forced and some process is * waiting for it to finish. */ unsigned int t_synchronous_commit:1; /* Disk flush needs to be sent to fs partition [no locking] */ int t_need_data_flush; /* * For use by the filesystem to store fs-specific data * structures associated with the transaction */ struct list_head t_private_list; }; struct transaction_run_stats_s { unsigned long rs_wait; unsigned long rs_request_delay; unsigned long rs_running; unsigned long rs_locked; unsigned long rs_flushing; unsigned long rs_logging; __u32 rs_handle_count; __u32 rs_blocks; __u32 rs_blocks_logged; }; struct transaction_stats_s { unsigned long ts_tid; unsigned long ts_requested; struct transaction_run_stats_s run; }; static inline unsigned long jbd2_time_diff(unsigned long start, unsigned long end) { if (end >= start) return end - start; return end + (MAX_JIFFY_OFFSET - start); } #define JBD2_NR_BATCH 64 /** * struct journal_s - The journal_s type is the concrete type associated with * journal_t. */ struct journal_s { /** * @j_flags: General journaling state flags [j_state_lock] */ unsigned long j_flags; /** * @j_errno: * * Is there an outstanding uncleared error on the journal (from a prior * abort)? [j_state_lock] */ int j_errno; /** * @j_abort_mutex: Lock the whole aborting procedure. */ struct mutex j_abort_mutex; /** * @j_sb_buffer: The first part of the superblock buffer. */ struct buffer_head *j_sb_buffer; /** * @j_superblock: The second part of the superblock buffer. */ journal_superblock_t *j_superblock; /** * @j_format_version: Version of the superblock format. */ int j_format_version; /** * @j_state_lock: Protect the various scalars in the journal. */ rwlock_t j_state_lock; /** * @j_barrier_count: * * Number of processes waiting to create a barrier lock [j_state_lock] */ int j_barrier_count; /** * @j_barrier: The barrier lock itself. */ struct mutex j_barrier; /** * @j_running_transaction: * * Transactions: The current running transaction... * [j_state_lock] [caller holding open handle] */ transaction_t *j_running_transaction; /** * @j_committing_transaction: * * the transaction we are pushing to disk * [j_state_lock] [caller holding open handle] */ transaction_t *j_committing_transaction; /** * @j_checkpoint_transactions: * * ... and a linked circular list of all transactions waiting for * checkpointing. [j_list_lock] */ transaction_t *j_checkpoint_transactions; /** * @j_wait_transaction_locked: * * Wait queue for waiting for a locked transaction to start committing, * or for a barrier lock to be released. */ wait_queue_head_t j_wait_transaction_locked; /** * @j_wait_done_commit: Wait queue for waiting for commit to complete. */ wait_queue_head_t j_wait_done_commit; /** * @j_wait_commit: Wait queue to trigger commit. */ wait_queue_head_t j_wait_commit; /** * @j_wait_updates: Wait queue to wait for updates to complete. */ wait_queue_head_t j_wait_updates; /** * @j_wait_reserved: * * Wait queue to wait for reserved buffer credits to drop. */ wait_queue_head_t j_wait_reserved; /** * @j_checkpoint_mutex: * * Semaphore for locking against concurrent checkpoints. */ struct mutex j_checkpoint_mutex; /** * @j_chkpt_bhs: * * List of buffer heads used by the checkpoint routine. This * was moved from jbd2_log_do_checkpoint() to reduce stack * usage. Access to this array is controlled by the * @j_checkpoint_mutex. [j_checkpoint_mutex] */ struct buffer_head *j_chkpt_bhs[JBD2_NR_BATCH]; /** * @j_head: * * Journal head: identifies the first unused block in the journal. * [j_state_lock] */ unsigned long j_head; /** * @j_tail: * * Journal tail: identifies the oldest still-used block in the journal. * [j_state_lock] */ unsigned long j_tail; /** * @j_free: * * Journal free: how many free blocks are there in the journal? * [j_state_lock] */ unsigned long j_free; /** * @j_first: * * The block number of the first usable block in the journal * [j_state_lock]. */ unsigned long j_first; /** * @j_last: * * The block number one beyond the last usable block in the journal * [j_state_lock]. */ unsigned long j_last; /** * @j_dev: Device where we store the journal. */ struct block_device *j_dev; /** * @j_blocksize: Block size for the location where we store the journal. */ int j_blocksize; /** * @j_blk_offset: * * Starting block offset into the device where we store the journal. */ unsigned long long j_blk_offset; /** * @j_devname: Journal device name. */ char j_devname[BDEVNAME_SIZE+24]; /** * @j_fs_dev: * * Device which holds the client fs. For internal journal this will be * equal to j_dev. */ struct block_device *j_fs_dev; /** * @j_maxlen: Total maximum capacity of the journal region on disk. */ unsigned int j_maxlen; /** * @j_reserved_credits: * * Number of buffers reserved from the running transaction. */ atomic_t j_reserved_credits; /** * @j_list_lock: Protects the buffer lists and internal buffer state. */ spinlock_t j_list_lock; /** * @j_inode: * * Optional inode where we store the journal. If present, all * journal block numbers are mapped into this inode via bmap(). */ struct inode *j_inode; /** * @j_tail_sequence: * * Sequence number of the oldest transaction in the log [j_state_lock] */ tid_t j_tail_sequence; /** * @j_transaction_sequence: * * Sequence number of the next transaction to grant [j_state_lock] */ tid_t j_transaction_sequence; /** * @j_commit_sequence: * * Sequence number of the most recently committed transaction * [j_state_lock]. */ tid_t j_commit_sequence; /** * @j_commit_request: * * Sequence number of the most recent transaction wanting commit * [j_state_lock] */ tid_t j_commit_request; /** * @j_uuid: * * Journal uuid: identifies the object (filesystem, LVM volume etc) * backed by this journal. This will eventually be replaced by an array * of uuids, allowing us to index multiple devices within a single * journal and to perform atomic updates across them. */ __u8 j_uuid[16]; /** * @j_task: Pointer to the current commit thread for this journal. */ struct task_struct *j_task; /** * @j_max_transaction_buffers: * * Maximum number of metadata buffers to allow in a single compound * commit transaction. */ int j_max_transaction_buffers; /** * @j_revoke_records_per_block: * * Number of revoke records that fit in one descriptor block. */ int j_revoke_records_per_block; /** * @j_commit_interval: * * What is the maximum transaction lifetime before we begin a commit? */ unsigned long j_commit_interval; /** * @j_commit_timer: The timer used to wakeup the commit thread. */ struct timer_list j_commit_timer; /** * @j_revoke_lock: Protect the revoke table. */ spinlock_t j_revoke_lock; /** * @j_revoke: * * The revoke table - maintains the list of revoked blocks in the * current transaction. */ struct jbd2_revoke_table_s *j_revoke; /** * @j_revoke_table: Alternate revoke tables for j_revoke. */ struct jbd2_revoke_table_s *j_revoke_table[2]; /** * @j_wbuf: Array of bhs for jbd2_journal_commit_transaction. */ struct buffer_head **j_wbuf; /** * @j_wbufsize: * * Size of @j_wbuf array. */ int j_wbufsize; /** * @j_last_sync_writer: * * The pid of the last person to run a synchronous operation * through the journal. */ pid_t j_last_sync_writer; /** * @j_average_commit_time: * * The average amount of time in nanoseconds it takes to commit a * transaction to disk. [j_state_lock] */ u64 j_average_commit_time; /** * @j_min_batch_time: * * Minimum time that we should wait for additional filesystem operations * to get batched into a synchronous handle in microseconds. */ u32 j_min_batch_time; /** * @j_max_batch_time: * * Maximum time that we should wait for additional filesystem operations * to get batched into a synchronous handle in microseconds. */ u32 j_max_batch_time; /** * @j_commit_callback: * * This function is called when a transaction is closed. */ void (*j_commit_callback)(journal_t *, transaction_t *); /* * Journal statistics */ /** * @j_history_lock: Protect the transactions statistics history. */ spinlock_t j_history_lock; /** * @j_proc_entry: procfs entry for the jbd statistics directory. */ struct proc_dir_entry *j_proc_entry; /** * @j_stats: Overall statistics. */ struct transaction_stats_s j_stats; /** * @j_failed_commit: Failed journal commit ID. */ unsigned int j_failed_commit; /** * @j_private: * * An opaque pointer to fs-private information. ext3 puts its * superblock pointer here. */ void *j_private; /** * @j_chksum_driver: * * Reference to checksum algorithm driver via cryptoapi. */ struct crypto_shash *j_chksum_driver; /** * @j_csum_seed: * * Precomputed journal UUID checksum for seeding other checksums. */ __u32 j_csum_seed; #ifdef CONFIG_DEBUG_LOCK_ALLOC /** * @j_trans_commit_map: * * Lockdep entity to track transaction commit dependencies. Handles * hold this "lock" for read, when we wait for commit, we acquire the * "lock" for writing. This matches the properties of jbd2 journalling * where the running transaction has to wait for all handles to be * dropped to commit that transaction and also acquiring a handle may * require transaction commit to finish. */ struct lockdep_map j_trans_commit_map; #endif }; #define jbd2_might_wait_for_commit(j) \ do { \ rwsem_acquire(&j->j_trans_commit_map, 0, 0, _THIS_IP_); \ rwsem_release(&j->j_trans_commit_map, _THIS_IP_); \ } while (0) /* journal feature predicate functions */ #define JBD2_FEATURE_COMPAT_FUNCS(name, flagname) \ static inline bool jbd2_has_feature_##name(journal_t *j) \ { \ return ((j)->j_format_version >= 2 && \ ((j)->j_superblock->s_feature_compat & \ cpu_to_be32(JBD2_FEATURE_COMPAT_##flagname)) != 0); \ } \ static inline void jbd2_set_feature_##name(journal_t *j) \ { \ (j)->j_superblock->s_feature_compat |= \ cpu_to_be32(JBD2_FEATURE_COMPAT_##flagname); \ } \ static inline void jbd2_clear_feature_##name(journal_t *j) \ { \ (j)->j_superblock->s_feature_compat &= \ ~cpu_to_be32(JBD2_FEATURE_COMPAT_##flagname); \ } #define JBD2_FEATURE_RO_COMPAT_FUNCS(name, flagname) \ static inline bool jbd2_has_feature_##name(journal_t *j) \ { \ return ((j)->j_format_version >= 2 && \ ((j)->j_superblock->s_feature_ro_compat & \ cpu_to_be32(JBD2_FEATURE_RO_COMPAT_##flagname)) != 0); \ } \ static inline void jbd2_set_feature_##name(journal_t *j) \ { \ (j)->j_superblock->s_feature_ro_compat |= \ cpu_to_be32(JBD2_FEATURE_RO_COMPAT_##flagname); \ } \ static inline void jbd2_clear_feature_##name(journal_t *j) \ { \ (j)->j_superblock->s_feature_ro_compat &= \ ~cpu_to_be32(JBD2_FEATURE_RO_COMPAT_##flagname); \ } #define JBD2_FEATURE_INCOMPAT_FUNCS(name, flagname) \ static inline bool jbd2_has_feature_##name(journal_t *j) \ { \ return ((j)->j_format_version >= 2 && \ ((j)->j_superblock->s_feature_incompat & \ cpu_to_be32(JBD2_FEATURE_INCOMPAT_##flagname)) != 0); \ } \ static inline void jbd2_set_feature_##name(journal_t *j) \ { \ (j)->j_superblock->s_feature_incompat |= \ cpu_to_be32(JBD2_FEATURE_INCOMPAT_##flagname); \ } \ static inline void jbd2_clear_feature_##name(journal_t *j) \ { \ (j)->j_superblock->s_feature_incompat &= \ ~cpu_to_be32(JBD2_FEATURE_INCOMPAT_##flagname); \ } JBD2_FEATURE_COMPAT_FUNCS(checksum, CHECKSUM) JBD2_FEATURE_INCOMPAT_FUNCS(revoke, REVOKE) JBD2_FEATURE_INCOMPAT_FUNCS(64bit, 64BIT) JBD2_FEATURE_INCOMPAT_FUNCS(async_commit, ASYNC_COMMIT) JBD2_FEATURE_INCOMPAT_FUNCS(csum2, CSUM_V2) JBD2_FEATURE_INCOMPAT_FUNCS(csum3, CSUM_V3) /* * Journal flag definitions */ #define JBD2_UNMOUNT 0x001 /* Journal thread is being destroyed */ #define JBD2_ABORT 0x002 /* Journaling has been aborted for errors. */ #define JBD2_ACK_ERR 0x004 /* The errno in the sb has been acked */ #define JBD2_FLUSHED 0x008 /* The journal superblock has been flushed */ #define JBD2_LOADED 0x010 /* The journal superblock has been loaded */ #define JBD2_BARRIER 0x020 /* Use IDE barriers */ #define JBD2_ABORT_ON_SYNCDATA_ERR 0x040 /* Abort the journal on file * data write error in ordered * mode */ /* * Function declarations for the journaling transaction and buffer * management */ /* Filing buffers */ extern void jbd2_journal_unfile_buffer(journal_t *, struct journal_head *); extern void __jbd2_journal_refile_buffer(struct journal_head *); extern void jbd2_journal_refile_buffer(journal_t *, struct journal_head *); extern void __jbd2_journal_file_buffer(struct journal_head *, transaction_t *, int); extern void __journal_free_buffer(struct journal_head *bh); extern void jbd2_journal_file_buffer(struct journal_head *, transaction_t *, int); extern void __journal_clean_data_list(transaction_t *transaction); static inline void jbd2_file_log_bh(struct list_head *head, struct buffer_head *bh) { list_add_tail(&bh->b_assoc_buffers, head); } static inline void jbd2_unfile_log_bh(struct buffer_head *bh) { list_del_init(&bh->b_assoc_buffers); } /* Log buffer allocation */ struct buffer_head *jbd2_journal_get_descriptor_buffer(transaction_t *, int); void jbd2_descriptor_block_csum_set(journal_t *, struct buffer_head *); int jbd2_journal_next_log_block(journal_t *, unsigned long long *); int jbd2_journal_get_log_tail(journal_t *journal, tid_t *tid, unsigned long *block); int __jbd2_update_log_tail(journal_t *journal, tid_t tid, unsigned long block); void jbd2_update_log_tail(journal_t *journal, tid_t tid, unsigned long block); /* Commit management */ extern void jbd2_journal_commit_transaction(journal_t *); /* Checkpoint list management */ void __jbd2_journal_clean_checkpoint_list(journal_t *journal, bool destroy); int __jbd2_journal_remove_checkpoint(struct journal_head *); void jbd2_journal_destroy_checkpoint(journal_t *journal); void __jbd2_journal_insert_checkpoint(struct journal_head *, transaction_t *); /* * Triggers */ struct jbd2_buffer_trigger_type { /* * Fired a the moment data to write to the journal are known to be * stable - so either at the moment b_frozen_data is created or just * before a buffer is written to the journal. mapped_data is a mapped * buffer that is the frozen data for commit. */ void (*t_frozen)(struct jbd2_buffer_trigger_type *type, struct buffer_head *bh, void *mapped_data, size_t size); /* * Fired during journal abort for dirty buffers that will not be * committed. */ void (*t_abort)(struct jbd2_buffer_trigger_type *type, struct buffer_head *bh); }; extern void jbd2_buffer_frozen_trigger(struct journal_head *jh, void *mapped_data, struct jbd2_buffer_trigger_type *triggers); extern void jbd2_buffer_abort_trigger(struct journal_head *jh, struct jbd2_buffer_trigger_type *triggers); /* Buffer IO */ extern int jbd2_journal_write_metadata_buffer(transaction_t *transaction, struct journal_head *jh_in, struct buffer_head **bh_out, sector_t blocknr); /* Transaction locking */ extern void __wait_on_journal (journal_t *); /* Transaction cache support */ extern void jbd2_journal_destroy_transaction_cache(void); extern int __init jbd2_journal_init_transaction_cache(void); extern void jbd2_journal_free_transaction(transaction_t *); /* * Journal locking. * * We need to lock the journal during transaction state changes so that nobody * ever tries to take a handle on the running transaction while we are in the * middle of moving it to the commit phase. j_state_lock does this. * * Note that the locking is completely interrupt unsafe. We never touch * journal structures from interrupts. */ static inline handle_t *journal_current_handle(void) { return current->journal_info; } /* The journaling code user interface: * * Create and destroy handles * Register buffer modifications against the current transaction. */ extern handle_t *jbd2_journal_start(journal_t *, int nblocks); extern handle_t *jbd2__journal_start(journal_t *, int blocks, int rsv_blocks, int revoke_records, gfp_t gfp_mask, unsigned int type, unsigned int line_no); extern int jbd2_journal_restart(handle_t *, int nblocks); extern int jbd2__journal_restart(handle_t *, int nblocks, int revoke_records, gfp_t gfp_mask); extern int jbd2_journal_start_reserved(handle_t *handle, unsigned int type, unsigned int line_no); extern void jbd2_journal_free_reserved(handle_t *handle); extern int jbd2_journal_extend(handle_t *handle, int nblocks, int revoke_records); extern int jbd2_journal_get_write_access(handle_t *, struct buffer_head *); extern int jbd2_journal_get_create_access (handle_t *, struct buffer_head *); extern int jbd2_journal_get_undo_access(handle_t *, struct buffer_head *); void jbd2_journal_set_triggers(struct buffer_head *, struct jbd2_buffer_trigger_type *type); extern int jbd2_journal_dirty_metadata (handle_t *, struct buffer_head *); extern int jbd2_journal_forget (handle_t *, struct buffer_head *); extern void journal_sync_buffer (struct buffer_head *); extern int jbd2_journal_invalidatepage(journal_t *, struct page *, unsigned int, unsigned int); extern int jbd2_journal_try_to_free_buffers(journal_t *, struct page *, gfp_t); extern int jbd2_journal_stop(handle_t *); extern int jbd2_journal_flush (journal_t *); extern void jbd2_journal_lock_updates (journal_t *); extern void jbd2_journal_unlock_updates (journal_t *); extern journal_t * jbd2_journal_init_dev(struct block_device *bdev, struct block_device *fs_dev, unsigned long long start, int len, int bsize); extern journal_t * jbd2_journal_init_inode (struct inode *); extern int jbd2_journal_update_format (journal_t *); extern int jbd2_journal_check_used_features (journal_t *, unsigned long, unsigned long, unsigned long); extern int jbd2_journal_check_available_features (journal_t *, unsigned long, unsigned long, unsigned long); extern int jbd2_journal_set_features (journal_t *, unsigned long, unsigned long, unsigned long); extern void jbd2_journal_clear_features (journal_t *, unsigned long, unsigned long, unsigned long); extern int jbd2_journal_load (journal_t *journal); extern int jbd2_journal_destroy (journal_t *); extern int jbd2_journal_recover (journal_t *journal); extern int jbd2_journal_wipe (journal_t *, int); extern int jbd2_journal_skip_recovery (journal_t *); extern void jbd2_journal_update_sb_errno(journal_t *); extern int jbd2_journal_update_sb_log_tail (journal_t *, tid_t, unsigned long, int); extern void jbd2_journal_abort (journal_t *, int); extern int jbd2_journal_errno (journal_t *); extern void jbd2_journal_ack_err (journal_t *); extern int jbd2_journal_clear_err (journal_t *); extern int jbd2_journal_bmap(journal_t *, unsigned long, unsigned long long *); extern int jbd2_journal_force_commit(journal_t *); extern int jbd2_journal_force_commit_nested(journal_t *); extern int jbd2_journal_inode_add_write(handle_t *handle, struct jbd2_inode *inode); extern int jbd2_journal_inode_add_wait(handle_t *handle, struct jbd2_inode *inode); extern int jbd2_journal_inode_ranged_write(handle_t *handle, struct jbd2_inode *inode, loff_t start_byte, loff_t length); extern int jbd2_journal_inode_ranged_wait(handle_t *handle, struct jbd2_inode *inode, loff_t start_byte, loff_t length); extern int jbd2_journal_begin_ordered_truncate(journal_t *journal, struct jbd2_inode *inode, loff_t new_size); extern void jbd2_journal_init_jbd_inode(struct jbd2_inode *jinode, struct inode *inode); extern void jbd2_journal_release_jbd_inode(journal_t *journal, struct jbd2_inode *jinode); /* * journal_head management */ struct journal_head *jbd2_journal_add_journal_head(struct buffer_head *bh); struct journal_head *jbd2_journal_grab_journal_head(struct buffer_head *bh); void jbd2_journal_put_journal_head(struct journal_head *jh); /* * handle management */ extern struct kmem_cache *jbd2_handle_cache; static inline handle_t *jbd2_alloc_handle(gfp_t gfp_flags) { return kmem_cache_zalloc(jbd2_handle_cache, gfp_flags); } static inline void jbd2_free_handle(handle_t *handle) { kmem_cache_free(jbd2_handle_cache, handle); } /* * jbd2_inode management (optional, for those file systems that want to use * dynamically allocated jbd2_inode structures) */ extern struct kmem_cache *jbd2_inode_cache; static inline struct jbd2_inode *jbd2_alloc_inode(gfp_t gfp_flags) { return kmem_cache_alloc(jbd2_inode_cache, gfp_flags); } static inline void jbd2_free_inode(struct jbd2_inode *jinode) { kmem_cache_free(jbd2_inode_cache, jinode); } /* Primary revoke support */ #define JOURNAL_REVOKE_DEFAULT_HASH 256 extern int jbd2_journal_init_revoke(journal_t *, int); extern void jbd2_journal_destroy_revoke_record_cache(void); extern void jbd2_journal_destroy_revoke_table_cache(void); extern int __init jbd2_journal_init_revoke_record_cache(void); extern int __init jbd2_journal_init_revoke_table_cache(void); extern void jbd2_journal_destroy_revoke(journal_t *); extern int jbd2_journal_revoke (handle_t *, unsigned long long, struct buffer_head *); extern int jbd2_journal_cancel_revoke(handle_t *, struct journal_head *); extern void jbd2_journal_write_revoke_records(transaction_t *transaction, struct list_head *log_bufs); /* Recovery revoke support */ extern int jbd2_journal_set_revoke(journal_t *, unsigned long long, tid_t); extern int jbd2_journal_test_revoke(journal_t *, unsigned long long, tid_t); extern void jbd2_journal_clear_revoke(journal_t *); extern void jbd2_journal_switch_revoke_table(journal_t *journal); extern void jbd2_clear_buffer_revoked_flags(journal_t *journal); /* * The log thread user interface: * * Request space in the current transaction, and force transaction commit * transitions on demand. */ int jbd2_log_start_commit(journal_t *journal, tid_t tid); int __jbd2_log_start_commit(journal_t *journal, tid_t tid); int jbd2_journal_start_commit(journal_t *journal, tid_t *tid); int jbd2_log_wait_commit(journal_t *journal, tid_t tid); int jbd2_transaction_committed(journal_t *journal, tid_t tid); int jbd2_complete_transaction(journal_t *journal, tid_t tid); int jbd2_log_do_checkpoint(journal_t *journal); int jbd2_trans_will_send_data_barrier(journal_t *journal, tid_t tid); void __jbd2_log_wait_for_space(journal_t *journal); extern void __jbd2_journal_drop_transaction(journal_t *, transaction_t *); extern int jbd2_cleanup_journal_tail(journal_t *); /* * is_journal_abort * * Simple test wrapper function to test the JBD2_ABORT state flag. This * bit, when set, indicates that we have had a fatal error somewhere, * either inside the journaling layer or indicated to us by the client * (eg. ext3), and that we and should not commit any further * transactions. */ static inline int is_journal_aborted(journal_t *journal) { return journal->j_flags & JBD2_ABORT; } static inline int is_handle_aborted(handle_t *handle) { if (handle->h_aborted || !handle->h_transaction) return 1; return is_journal_aborted(handle->h_transaction->t_journal); } static inline void jbd2_journal_abort_handle(handle_t *handle) { handle->h_aborted = 1; } #endif /* __KERNEL__ */ /* Comparison functions for transaction IDs: perform comparisons using * modulo arithmetic so that they work over sequence number wraps. */ static inline int tid_gt(tid_t x, tid_t y) { int difference = (x - y); return (difference > 0); } static inline int tid_geq(tid_t x, tid_t y) { int difference = (x - y); return (difference >= 0); } extern int jbd2_journal_blocks_per_page(struct inode *inode); extern size_t journal_tag_bytes(journal_t *journal); static inline bool jbd2_journal_has_csum_v2or3_feature(journal_t *j) { return jbd2_has_feature_csum2(j) || jbd2_has_feature_csum3(j); } static inline int jbd2_journal_has_csum_v2or3(journal_t *journal) { WARN_ON_ONCE(jbd2_journal_has_csum_v2or3_feature(journal) && journal->j_chksum_driver == NULL); return journal->j_chksum_driver != NULL; } /* * Return number of free blocks in the log. Must be called under j_state_lock. */ static inline unsigned long jbd2_log_space_left(journal_t *journal) { /* Allow for rounding errors */ long free = journal->j_free - 32; if (journal->j_committing_transaction) { free -= atomic_read(&journal-> j_committing_transaction->t_outstanding_credits); } return max_t(long, free, 0); } /* * Definitions which augment the buffer_head layer */ /* journaling buffer types */ #define BJ_None 0 /* Not journaled */ #define BJ_Metadata 1 /* Normal journaled metadata */ #define BJ_Forget 2 /* Buffer superseded by this transaction */ #define BJ_Shadow 3 /* Buffer contents being shadowed to the log */ #define BJ_Reserved 4 /* Buffer is reserved for access by journal */ #define BJ_Types 5 extern int jbd_blocks_per_page(struct inode *inode); /* JBD uses a CRC32 checksum */ #define JBD_MAX_CHECKSUM_SIZE 4 static inline u32 jbd2_chksum(journal_t *journal, u32 crc, const void *address, unsigned int length) { struct { struct shash_desc shash; char ctx[JBD_MAX_CHECKSUM_SIZE]; } desc; int err; BUG_ON(crypto_shash_descsize(journal->j_chksum_driver) > JBD_MAX_CHECKSUM_SIZE); desc.shash.tfm = journal->j_chksum_driver; desc.shash.flags = 0; *(u32 *)desc.ctx = crc; err = crypto_shash_update(&desc.shash, address, length); BUG_ON(err); return *(u32 *)desc.ctx; } /* Return most recent uncommitted transaction */ static inline tid_t jbd2_get_latest_transaction(journal_t *journal) { tid_t tid; read_lock(&journal->j_state_lock); tid = journal->j_commit_request; if (journal->j_running_transaction) tid = journal->j_running_transaction->t_tid; read_unlock(&journal->j_state_lock); return tid; } static inline int jbd2_handle_buffer_credits(handle_t *handle) { journal_t *journal; if (!handle->h_reserved) journal = handle->h_transaction->t_journal; else journal = handle->h_journal; return handle->h_total_credits - DIV_ROUND_UP(handle->h_revoke_credits_requested, journal->j_revoke_records_per_block); } #ifdef __KERNEL__ #define buffer_trace_init(bh) do {} while (0) #define print_buffer_fields(bh) do {} while (0) #define print_buffer_trace(bh) do {} while (0) #define BUFFER_TRACE(bh, info) do {} while (0) #define BUFFER_TRACE2(bh, bh2, info) do {} while (0) #define JBUFFER_TRACE(jh, info) do {} while (0) #endif /* __KERNEL__ */ #define EFSBADCRC EBADMSG /* Bad CRC detected */ #define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */ #endif /* _LINUX_JBD2_H */
Save
cmd:
run