aboutsummaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorJavier <dev.git@javispedro.com>2026-11-01 17:00:06 +0100
committerJavier <dev.git@javispedro.com>2026-11-01 17:00:06 +0100
commitff12b245cc42a179afd9ffb404a5c3833fb07467 (patch)
treebde8cae1955bc0e03745747ca2f3cb442f8ea801 /linux
parent8f0045914642dc58a0b9dac251726d909324b3b4 (diff)
downloadchu-ff12b245cc42a179afd9ffb404a5c3833fb07467.tar.gz
chu-ff12b245cc42a179afd9ffb404a5c3833fb07467.zip
linux: flush buffers on module removalHEADmaster
Diffstat (limited to 'linux')
-rw-r--r--linux/chudisk.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/linux/chudisk.c b/linux/chudisk.c
index f50551c..3d6f79b 100644
--- a/linux/chudisk.c
+++ b/linux/chudisk.c
@@ -601,6 +601,16 @@ static void chudisk_exit(void)
{
struct ch375 *dev = &chudisk_dev[0];
struct gendisk **gdp;
+ int i;
+
+ // Flush buffers for all minors
+ for (i = 0; i < CHUDISK_MAX_MINORS; i++) {
+ kdev_t mdevno = MKDEV(MAJOR_NR, i);
+
+ fsync_dev(mdevno);
+ invalidate_inodes_dev(mdevno);
+ invalidate_buffers(mdevno);
+ }
// Remove from genhd list
for(gdp = &gendisk_head; *gdp; gdp = &((*gdp)->next)) {