[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