Jak widać powyżej, domyślną operacją otwierania pliku urządzenia blokowego jest funkcja blkdev_open().
int blkdev_open(struct inode * inode, struct file * filp)
1. odczytuje z inode wskaźnik do struktury opisującej urządzenie związane z danym plikiem specjalnym ( inode->i_bdev ) 2. jeśli wskazywana struktura nie zawiera wskaźnika do właściwego zestawu operacji obsługujących to urządzenie, to odczytuje zestaw z tablicy rodzielczej za pomocą funkcji get_blkfops() i umieszcza go w tej strukturze 3. wywołuje open z tego zestawu operacji
Dzięki wywołaniu blkdev_open() struktura wskazywana przez inode->i_bdev zawiera aktualny zestaw operacji dla urządzeń o konkretnym numerze głównym. Należy zwrócić uwagę, że funkcja blkdev_open() nie zmienia zestawu operacji z i-węzła ani ze struktury obiektu pliku tylko te ze struktury wskazywanej przez inode->i_bdev. Oznacza to, że filp->f_op dalej wskazuje na def_blk_fops, a co za tym idzie przy innych odwołaniach do pliku związanego z i-węzłem (np. read, write, lseek) dalej będą wywoływane domyślne funkcje wspólne dla wszystkich urządzeń blokowych, z tą różnicą, że nie będą już musiały aglądać" do tablicy rozdzielczej.