break up fs/devices.c
Subsystems (4)
PATCH 1/1 break up fs/devices.c
Resend against 2.5.48-bk
This patch breaks up and removes fs/devices.c, moving functions to more logical places.
character device functions -> char_dev.c init_special_inode() -> inode.ckdevname() -> libfs.c (this should die, but that's another patch) bad_sock_fops -> socket.c
Signature · 1 line
Brian Gerst
fs/Makefile +1 -1
@@ -8,7 +8,7 @@ export-objs := open.o dcache.o buffer.o bio.o inode.o dquot.o mpage.o aio.o \ fcntl.o read_write.o dcookies.o mbcache.o posix_acl.o xattr_acl.o -obj-y := open.o read_write.o devices.o file_table.o buffer.o \ +obj-y := open.o read_write.o file_table.o buffer.o \ bio.o super.o block_dev.o char_dev.o stat.o exec.o pipe.o \ namei.o fcntl.o ioctl.o readdir.o select.o fifo.o locks.o \ dcache.o inode.o attr.o bad_inode.o file.o dnotify.o \
fs/char_dev.c +164 -0
173 lines not on this page · raw message
fs/devices.c +0 -222
222 lines not on this page · raw message
fs/inode.c +18 -0
@@ -1270,3 +1270,21 @@set_shrinker (DEFAULT_SEEKS , shrink_icache_memory); } + +void init_special_inode (struct inode *inode,umode_t mode,dev_t rdev) +{ + inode->i_mode = mode; +if (S_ISCHR (mode)) { + inode->i_fop = &def_chr_fops; + inode->i_rdev =to_kdev_t (rdev); + inode->i_cdev =cdget (rdev); + }else if (S_ISBLK (mode)) { + inode->i_fop = &def_blk_fops; + inode->i_rdev =to_kdev_t (rdev); + }else if (S_ISFIFO (mode)) + inode->i_fop = &def_fifo_fops; +else if (S_ISSOCK (mode)) + inode->i_fop = &bad_sock_fops; +else +printk (KERN_DEBUG "init_special_inode: bogus i_mode (%o)\n" , mode); +}
fs/libfs.c +11 -0
@@ -323,3 +323,14 @@set_page_dirty (page);return 0 ; } + +/* +* Print device name (in decimal, hexadecimal or symbolic) +* Note: returns pointer to static data! +*/ +const char *kdevname (kdev_t dev) +{ +static char buffer[32 ]; +sprintf (buffer,"%02x:%02x" ,major (dev),minor (dev)); +return buffer; +}
fs/proc/proc_misc.c +4 -2
@@ -57,7 +57,8 @@*/ extern int get_hardware_list (char *);extern int get_stram_list (char *); -extern int get_device_list (char *); +extern int get_chrdev_list (char *); +extern int get_blkdev_list (char *);extern int get_filesystem_list (char *);extern int get_exec_domain_list (char *);extern int get_dma_list (char *);
@@ -376,7 +377,8 @@static int devices_read_proc (char *page,char **start,off_t off,int count,int *eof,void *data) { -int len =get_device_list (page); +int len =get_chrdev_list (page); + len +=get_blkdev_list (page+len);return proc_calc_metrics (page, start, off, count, eof, len); }
include/linux/fs.h +2 -0
@@ -1089,6 +1089,8 @@extern int blkdev_close (struct inode *,struct file *);extern struct file_operations def_blk_fops;extern struct address_space_operations def_blk_aops; +extern struct file_operations def_chr_fops; +extern struct file_operations bad_sock_fops;extern struct file_operations def_fifo_fops;extern int ioctl_by_bdev (struct block_device *,unsigned ,unsigned long );extern int blkdev_ioctl (struct inode *,struct file *,unsigned ,unsigned long );
net/socket.c +4 -0
@@ -491,6 +491,10 @@return -ENXIO ; } +struct file_operations bad_sock_fops = { + .open = sock_no_open, +}; +/** * sock_release - close a socket * @sock: socket to close