[pso] [Tema3][Linux] operatia de flush pe dispozitive
Eugen
pupicutz2000 at gmail.com
Mon May 10 17:40:38 EEST 2010
Razvan Deaconescu wrote:
> On Mon, 2010-05-10 at 17:14 +0300, Eugen wrote:
>
>> Salut,
>> "pentru sincronizarea informațiilor scrise/citite în cadrul discului
>> virtual cu discurile fizice (flushing), modulul va trebui să exporte o
>> operație tip ioctl (|SSR_IOCTL_SYNC|); acest lucru îl realizați cu
>> ajutorul operațiilor sync_blockdev
>> <http://lxr.free-electrons.com/source/fs/block_dev.c?v=2.6.31#L189> și
>> invalidate_bdev
>> <http://lxr.free-electrons.com/source/fs/buffer.c?v=2.6.31#L233> pe
>> dispozitivul virtual și pe dispozitivele fizice;"
>> Pentru dispozitivele fizice apelam direct functiile, dar pentru cel
>> virtual cum procedam ? Functiile respective primesc un struct bdev ca
>> parametru, iar noi avem de facut flush pe un dispozitiv virtual.
>>
>
> Apelati cele doua functii atat pentru dispozitivul virtual cat si pentru
> dispozitivele fizice. Apelati intai sync_blockdev (pentru flush-ul
> bufferelor care trebuie scrise) si apoi invalidate_bdev (pentru
> invalidarea bufferelor citite).
>
Razvan, doar ce am scris mai sus ca cele doua functii se aplica numai pe
un struct block_device, dispozitivul meu virtual este deschis cu
register_blkdev , care nu are nici o structura block_device pe care sa
pot sa apelez cele doua functii.
Sugestii ?
> Razvan
>
> _______________________________________________
> http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii
More information about the pso
mailing list