Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e1455d1b authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Al Viro
Browse files

update block_device_operations documentation



Updated Documentation/filesystems/Locking to match the code.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent 8358e7d7
Loading
Loading
Loading
Loading
+23 −8
Original line number Diff line number Diff line
@@ -349,21 +349,36 @@ call this method upon the IO completion.

--------------------------- block_device_operations -----------------------
prototypes:
	int (*open) (struct inode *, struct file *);
	int (*release) (struct inode *, struct file *);
	int (*ioctl) (struct inode *, struct file *, unsigned, unsigned long);
	int (*open) (struct block_device *, fmode_t);
	int (*release) (struct gendisk *, fmode_t);
	int (*ioctl) (struct block_device *, fmode_t, unsigned, unsigned long);
	int (*compat_ioctl) (struct block_device *, fmode_t, unsigned, unsigned long);
	int (*direct_access) (struct block_device *, sector_t, void **, unsigned long *);
	int (*media_changed) (struct gendisk *);
	void (*unlock_native_capacity) (struct gendisk *);
	int (*revalidate_disk) (struct gendisk *);
	int (*getgeo)(struct block_device *, struct hd_geometry *);
	void (*swap_slot_free_notify) (struct block_device *, unsigned long);

locking rules:
			BKL	bd_sem
open:			yes	yes
release:		yes	yes
ioctl:			yes	no
			BKL	bd_mutex
open:			no	yes
release:		no	yes
ioctl:			no	no
compat_ioctl:		no	no
direct_access:		no	no
media_changed:		no	no
unlock_native_capacity:	no	no
revalidate_disk:	no	no
getgeo:			no	no
swap_slot_free_notify:	no	no	(see below)

media_changed, unlock_native_capacity and revalidate_disk are called only from
check_disk_change().

swap_slot_free_notify is called with swap_lock and sometimes the page lock
held.

The last two are called only from check_disk_change().

--------------------------- file_operations -------------------------------
prototypes: