Revision ce93ec548cfa02f9cd6b70d546d5f36f4d160f57 authored by Josef Bacik on 17 November 2014, 20:45:48 UTC, committed by Chris Mason on 22 January 2015, 01:36:52 UTC
Currently any time we try to update the block groups on disk we will walk _all_ block groups and check for the ->dirty flag to see if it is set. This function can get called several times during a commit. So if you have several terabytes of data you will be a very sad panda as we will loop through _all_ of the block groups several times, which makes the commit take a while which slows down the rest of the file system operations. This patch introduces a dirty list for the block groups that we get added to when we dirty the block group for the first time. Then we simply update any block groups that have been dirtied since the last time we called btrfs_write_dirty_block_groups. This allows us to clean up how we write the free space cache out so it is much cleaner. Thanks, Signed-off-by: Josef Bacik <jbacik@fb.com> Signed-off-by: Chris Mason <clm@fb.com>
1 parent e7070be
File | Mode | Size |
---|---|---|
basic | ||
coccinelle | ||
dtc | ||
genksyms | ||
kconfig | ||
ksymoops | ||
mod | ||
package | ||
rt-tester | ||
selinux | ||
tracing | ||
.gitignore | -rw-r--r-- | 116 bytes |
Kbuild.include | -rw-r--r-- | 10.9 KB |
Lindent | -rwxr-xr-x | 460 bytes |
Makefile | -rw-r--r-- | 1.4 KB |
Makefile.asm-generic | -rw-r--r-- | 683 bytes |
Makefile.build | -rw-r--r-- | 13.4 KB |
Makefile.clean | -rw-r--r-- | 2.9 KB |
Makefile.dtbinst | -rw-r--r-- | 1.4 KB |
Makefile.extrawarn | -rw-r--r-- | 2.4 KB |
Makefile.fwinst | -rw-r--r-- | 2.0 KB |
Makefile.headersinst | -rw-r--r-- | 4.7 KB |
Makefile.help | -rw-r--r-- | 68 bytes |
Makefile.host | -rw-r--r-- | 4.5 KB |
Makefile.lib | -rw-r--r-- | 13.7 KB |
Makefile.modbuiltin | -rw-r--r-- | 1.8 KB |
Makefile.modinst | -rw-r--r-- | 1.2 KB |
Makefile.modpost | -rw-r--r-- | 5.2 KB |
Makefile.modsign | -rw-r--r-- | 1005 bytes |
analyze_suspend.py | -rwxr-xr-x | 117.6 KB |
asn1_compiler.c | -rw-r--r-- | 33.8 KB |
bloat-o-meter | -rwxr-xr-x | 1.9 KB |
bootgraph.pl | -rwxr-xr-x | 6.3 KB |
checkincludes.pl | -rwxr-xr-x | 1.8 KB |
checkkconfigsymbols.py | -rw-r--r-- | 4.6 KB |
checkpatch.pl | -rwxr-xr-x | 152.5 KB |
checkstack.pl | -rwxr-xr-x | 5.4 KB |
checksyscalls.sh | -rwxr-xr-x | 5.6 KB |
checkversion.pl | -rwxr-xr-x | 1.9 KB |
cleanfile | -rwxr-xr-x | 3.4 KB |
cleanpatch | -rwxr-xr-x | 5.0 KB |
coccicheck | -rwxr-xr-x | 4.6 KB |
config | -rwxr-xr-x | 4.5 KB |
conmakehash.c | -rw-r--r-- | 6.0 KB |
decode_stacktrace.sh | -rwxr-xr-x | 3.0 KB |
decodecode | -rwxr-xr-x | 2.1 KB |
depmod.sh | -rwxr-xr-x | 1.7 KB |
diffconfig | -rwxr-xr-x | 3.7 KB |
docproc.c | -rw-r--r-- | 13.8 KB |
export_report.pl | -rwxr-xr-x | 4.5 KB |
extract-ikconfig | -rwxr-xr-x | 1.6 KB |
extract-vmlinux | -rwxr-xr-x | 1.6 KB |
gcc-goto.sh | -rwxr-xr-x | 495 bytes |
gcc-ld | -rwxr-xr-x | 676 bytes |
gcc-version.sh | -rwxr-xr-x | 822 bytes |
gcc-x86_32-has-stack-protector.sh | -rwxr-xr-x | 184 bytes |
gcc-x86_64-has-stack-protector.sh | -rwxr-xr-x | 200 bytes |
gen_initramfs_list.sh | -rwxr-xr-x | 7.9 KB |
get_maintainer.pl | -rwxr-xr-x | 57.3 KB |
gfp-translate | -rwxr-xr-x | 1.7 KB |
headerdep.pl | -rwxr-xr-x | 3.5 KB |
headers.sh | -rwxr-xr-x | 477 bytes |
headers_check.pl | -rwxr-xr-x | 3.6 KB |
headers_install.sh | -rwxr-xr-x | 1.3 KB |
kallsyms.c | -rw-r--r-- | 16.5 KB |
kernel-doc | -rwxr-xr-x | 72.1 KB |
ld-version.sh | -rwxr-xr-x | 205 bytes |
link-vmlinux.sh | -rwxr-xr-x | 5.7 KB |
makelst | -rwxr-xr-x | 773 bytes |
markup_oops.pl | -rwxr-xr-x | 8.1 KB |
mkcompile_h | -rwxr-xr-x | 2.5 KB |
mkmakefile | -rwxr-xr-x | 1.2 KB |
mksysmap | -rwxr-xr-x | 1.3 KB |
mkuboot.sh | -rwxr-xr-x | 379 bytes |
mkversion | -rw-r--r-- | 74 bytes |
module-common.lds | -rw-r--r-- | 737 bytes |
namespace.pl | -rwxr-xr-x | 13.0 KB |
objdiff | -rwxr-xr-x | 2.7 KB |
patch-kernel | -rwxr-xr-x | 9.9 KB |
pnmtologo.c | -rw-r--r-- | 11.9 KB |
profile2linkerlist.pl | -rwxr-xr-x | 375 bytes |
recordmcount.c | -rw-r--r-- | 12.4 KB |
recordmcount.h | -rw-r--r-- | 16.4 KB |
recordmcount.pl | -rwxr-xr-x | 17.7 KB |
setlocalversion | -rwxr-xr-x | 3.9 KB |
show_delta | -rwxr-xr-x | 3.0 KB |
sign-file | -rwxr-xr-x | 12.2 KB |
sortextable.c | -rw-r--r-- | 7.6 KB |
sortextable.h | -rw-r--r-- | 5.5 KB |
spelling.txt | -rw-r--r-- | 20.8 KB |
tags.sh | -rwxr-xr-x | 10.2 KB |
unifdef.c | -rw-r--r-- | 34.8 KB |
ver_linux | -rwxr-xr-x | 3.1 KB |
xz_wrap.sh | -rwxr-xr-x | 562 bytes |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...