[pso] [Tema 3] Operația ioctl de sync

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Sun Apr 24 16:57:43 EEST 2011


2011/4/24 Andrada Georgescu <andradaq at gmail.com>:
> Salut!
>
> Postez soluția la o problemă care mi-a luat ceva timp să o rezolv.
>
> Îmi picau un număr variabil de teste de la recovery iar problema s-a
> dovedit a fi funcția de sync greșită, în care nu făceam sync și
> invalidate și pentru dispozitivele fizice, ci doar pentru cel primit
> ca parametru (nu am fost atentă la implementarea testerului și am avut
> impresia că se ocupă el de sincronizarea lor).

Cred că funcția aceasta de sincronizare dă bătăi de cap constant. O să
o înlocuim/refactorizăm anul viitor. Postez aici snippet-ul recomandat
pentru implementarea acestei funcții; sper să reducă din consumul de
timp alocat temei pe aspecte punctuale.
---
	switch (cmd) {
	case SSR_IOCTL_SYNC:
		sync_blockdev(bdev);
		sync_blockdev(ssr_dev.backing_devs[0]);
		sync_blockdev(ssr_dev.backing_devs[1]);

		invalidate_bdev(bdev);
		invalidate_bdev(ssr_dev.backing_devs[0]);
		invalidate_bdev(ssr_dev.backing_devs[1]);
		break;
---

Răzvan


More information about the pso mailing list