rgrp_go_sync(9)
π rgrp_go_sync(9) β the Kernel API Manual, but make it make sense π
okay so real talk, bestie, this one is from the Kernel API Manual and the function is literally called rgrp_go_sync. she's a glock girlie. let's get into it β¨
β¨ NAME β¨
rgrp_go_sync β sync out the metadata for this glock π«
π¦ SYNOPSIS π¦
int rgrp_go_sync (struct gfs2_glock *gl );
πΈ ARGUMENTS πΈ
glβ the glock. that's it. that's the whole argument. she's the main character of this whole function π«Ά
π₯ DESCRIPTION π₯
so this bad boy gets called when you're demoting or unlocking an EX glock β yes, EX like exclusive, not like your ex. π
when that happens, we must flush to disk all the dirty buffers/pages relating to this glock. like, all of them. no leaving stragglers behind, no "oh I'll get to it later", none of that.
and here's the part where you do not play around: we must not return to the caller to demote/unlock the glock until the I/O is complete. periodt. π₯ the demote/unlock just has to sit there and wait for the I/O to finish, no shortcuts, no vibes-based early returns. it's giving "blocking on purpose and that's iconic". π
π SEE ALSO π
kernel file ./fs/gfs2/glops.c, plus the whole friend group π
__gfs2_ail_flush(9)gfs2_rgrp_metasync(9)rgrp_go_inval(9)gfs2_inode_metasync(9)inode_go_sync(9)inode_go_inval(9)gfs2_inode_refresh(9)inode_go_instantiate(9)inode_go_dump(9)freeze_go_callback(9)freeze_go_xmote_bh(9)iopen_go_callback(9)
and that's the page, bestie π she lives in ./fs/gfs2, she's dated October 2026, and she answers to rgrp_go_sync(9) β go forth and sync that metadata, iykyk ππ¦
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms