tag | line | file | source code |
inode | 98 | drivers/block/cdu31a.c | static int scd_open(struct inode *inode, struct file *filp); |
inode | 1137 | drivers/block/cdu31a.c | scd_ioctl(struct inode *inode, |
inode | 1149 | drivers/block/cdu31a.c | if (!inode) |
inode | 1153 | drivers/block/cdu31a.c | dev = MINOR(inode->i_rdev) >> 6; |
inode | 1454 | drivers/block/cdu31a.c | scd_open(struct inode *inode, |
inode | 1516 | drivers/block/cdu31a.c | if (inode) |
inode | 1518 | drivers/block/cdu31a.c | check_disk_change(inode->i_rdev); |
inode | 1532 | drivers/block/cdu31a.c | scd_release(struct inode *inode, |
inode | 1545 | drivers/block/cdu31a.c | sync_dev(inode->i_rdev); |
inode | 1108 | drivers/block/floppy.c | static int fd_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, |
inode | 1115 | drivers/block/floppy.c | RO_IOCTLS(inode->i_rdev,param); |
inode | 1117 | drivers/block/floppy.c | drive = MINOR(inode->i_rdev); |
inode | 1175 | drivers/block/floppy.c | if (!permission(inode, 2)) |
inode | 1180 | drivers/block/floppy.c | check_disk_change(inode->i_rdev); |
inode | 1271 | drivers/block/floppy.c | static int floppy_open(struct inode * inode, struct file * filp) |
inode | 1276 | drivers/block/floppy.c | drive = inode->i_rdev & 3; |
inode | 1279 | drivers/block/floppy.c | if (old_dev != inode->i_rdev) |
inode | 1282 | drivers/block/floppy.c | fd_device[drive] = inode->i_rdev; |
inode | 1284 | drivers/block/floppy.c | if (old_dev && old_dev != inode->i_rdev) |
inode | 1287 | drivers/block/floppy.c | check_disk_change(inode->i_rdev); |
inode | 1291 | drivers/block/floppy.c | static void floppy_release(struct inode * inode, struct file * filp) |
inode | 1293 | drivers/block/floppy.c | sync_dev(inode->i_rdev); |
inode | 1294 | drivers/block/floppy.c | if (!fd_ref[inode->i_rdev & 3]--) { |
inode | 1296 | drivers/block/floppy.c | fd_ref[inode->i_rdev & 3] = 0; |
inode | 525 | drivers/block/hd.c | static int hd_ioctl(struct inode * inode, struct file * file, |
inode | 531 | drivers/block/hd.c | if (!inode) |
inode | 533 | drivers/block/hd.c | dev = MINOR(inode->i_rdev) >> 6; |
inode | 548 | drivers/block/hd.c | put_fs_long(hd[MINOR(inode->i_rdev)].start_sect, |
inode | 556 | drivers/block/hd.c | put_fs_long(hd[MINOR(inode->i_rdev)].nr_sects, |
inode | 561 | drivers/block/hd.c | if(!inode->i_rdev) return -EINVAL; |
inode | 562 | drivers/block/hd.c | fsync_dev(inode->i_rdev); |
inode | 563 | drivers/block/hd.c | invalidate_buffers(inode->i_rdev); |
inode | 567 | drivers/block/hd.c | return revalidate_hddisk(inode->i_rdev, 1); |
inode | 568 | drivers/block/hd.c | RO_IOCTLS(inode->i_rdev,arg); |
inode | 574 | drivers/block/hd.c | static int hd_open(struct inode * inode, struct file * filp) |
inode | 577 | drivers/block/hd.c | target = DEVICE_NR(MINOR(inode->i_rdev)); |
inode | 589 | drivers/block/hd.c | static void hd_release(struct inode * inode, struct file * file) |
inode | 592 | drivers/block/hd.c | sync_dev(inode->i_rdev); |
inode | 594 | drivers/block/hd.c | target = DEVICE_NR(MINOR(inode->i_rdev)); |
inode | 169 | drivers/block/mcd.c | mcd_ioctl(struct inode *ip, struct file *fp, unsigned int cmd, |
inode | 725 | drivers/block/mcd.c | mcd_open(struct inode *ip, struct file *fp) |
inode | 754 | drivers/block/mcd.c | mcd_release(struct inode * inode, struct file * file) |
inode | 757 | drivers/block/mcd.c | sync_dev(inode->i_rdev); |
inode | 758 | drivers/block/mcd.c | invalidate_buffers(inode -> i_rdev); |
inode | 158 | drivers/block/xd.c | static int xd_open (struct inode *inode,struct file *file) |
inode | 160 | drivers/block/xd.c | int dev = DEVICE_NR(MINOR(inode->i_rdev)); |
inode | 201 | drivers/block/xd.c | static int xd_ioctl (struct inode *inode,struct file *file,u_int cmd,u_long arg) |
inode | 204 | drivers/block/xd.c | int dev = DEVICE_NR(MINOR(inode->i_rdev)),err; |
inode | 206 | drivers/block/xd.c | if (inode && (dev < xd_drives)) |
inode | 214 | drivers/block/xd.c | put_fs_long(xd[MINOR(inode->i_rdev)].start_sect,(long *) &geometry->start); |
inode | 222 | drivers/block/xd.c | put_fs_long(xd[MINOR(inode->i_rdev)].nr_sects,(long *) arg); |
inode | 229 | drivers/block/xd.c | if(!inode->i_rdev) return -EINVAL; |
inode | 230 | drivers/block/xd.c | fsync_dev(inode->i_rdev); |
inode | 231 | drivers/block/xd.c | invalidate_buffers(inode->i_rdev); |
inode | 234 | drivers/block/xd.c | case BLKRRPART: return (xd_reread_partitions(inode->i_rdev)); |
inode | 235 | drivers/block/xd.c | RO_IOCTLS(inode->i_rdev,arg); |
inode | 241 | drivers/block/xd.c | static void xd_release (struct inode *inode, struct file *file) |
inode | 243 | drivers/block/xd.c | int dev = DEVICE_NR(MINOR(inode->i_rdev)); |
inode | 79 | drivers/char/atixlmouse.c | static void release_mouse(struct inode * inode, struct file * file) |
inode | 88 | drivers/char/atixlmouse.c | static int open_mouse(struct inode * inode, struct file * file) |
inode | 108 | drivers/char/atixlmouse.c | static int write_mouse(struct inode * inode, struct file * file, char * buffer, int count) |
inode | 113 | drivers/char/atixlmouse.c | static int read_mouse(struct inode * inode, struct file * file, char * buffer, int count) |
inode | 132 | drivers/char/atixlmouse.c | static int mouse_select(struct inode *inode, struct file *file, int sel_type, select_table * wait) |
inode | 93 | drivers/char/busmouse.c | static void close_mouse(struct inode * inode, struct file * file) |
inode | 106 | drivers/char/busmouse.c | static int open_mouse(struct inode * inode, struct file * file) |
inode | 127 | drivers/char/busmouse.c | static int write_mouse(struct inode * inode, struct file * file, char * buffer, int count) |
inode | 136 | drivers/char/busmouse.c | static int read_mouse(struct inode * inode, struct file * file, char * buffer, int count) |
inode | 189 | drivers/char/busmouse.c | static int mouse_select(struct inode *inode, struct file *file, int sel_type, select_table * wait) |
inode | 124 | drivers/char/lp.c | static int lp_write_interrupt(struct inode * inode, struct file * file, char * buf, int count) |
inode | 126 | drivers/char/lp.c | unsigned int minor = MINOR(inode->i_rdev); |
inode | 191 | drivers/char/lp.c | static int lp_write_polled(struct inode * inode, struct file * file, |
inode | 195 | drivers/char/lp.c | unsigned int minor = MINOR(inode->i_rdev); |
inode | 265 | drivers/char/lp.c | static int lp_write(struct inode * inode, struct file * file, char * buf, int count) |
inode | 267 | drivers/char/lp.c | if (LP_IRQ(MINOR(inode->i_rdev))) |
inode | 268 | drivers/char/lp.c | return lp_write_interrupt(inode, file, buf, count); |
inode | 270 | drivers/char/lp.c | return lp_write_polled(inode, file, buf, count); |
inode | 273 | drivers/char/lp.c | static int lp_lseek(struct inode * inode, struct file * file, |
inode | 279 | drivers/char/lp.c | static int lp_open(struct inode * inode, struct file * file) |
inode | 281 | drivers/char/lp.c | unsigned int minor = MINOR(inode->i_rdev); |
inode | 316 | drivers/char/lp.c | static void lp_release(struct inode * inode, struct file * file) |
inode | 318 | drivers/char/lp.c | unsigned int minor = MINOR(inode->i_rdev); |
inode | 331 | drivers/char/lp.c | static int lp_ioctl(struct inode *inode, struct file *file, |
inode | 334 | drivers/char/lp.c | unsigned int minor = MINOR(inode->i_rdev); |
inode | 26 | drivers/char/mem.c | static int read_ram(struct inode * inode, struct file * file,char * buf, int count) |
inode | 31 | drivers/char/mem.c | static int write_ram(struct inode * inode, struct file * file,char * buf, int count) |
inode | 36 | drivers/char/mem.c | static int read_mem(struct inode * inode, struct file * file,char * buf, int count) |
inode | 61 | drivers/char/mem.c | static int write_mem(struct inode * inode, struct file * file,char * buf, int count) |
inode | 86 | drivers/char/mem.c | static int mmap_mem(struct inode * inode, struct file * file, |
inode | 105 | drivers/char/mem.c | mpnt->vm_inode = inode; |
inode | 106 | drivers/char/mem.c | inode->i_count++; |
inode | 114 | drivers/char/mem.c | static int read_kmem(struct inode *inode, struct file *file, char *buf, int count) |
inode | 118 | drivers/char/mem.c | read1 = read_mem(inode, file, buf, count); |
inode | 128 | drivers/char/mem.c | static int read_port(struct inode * inode,struct file * file,char * buf, int count) |
inode | 142 | drivers/char/mem.c | static int write_port(struct inode * inode,struct file * file,char * buf, int count) |
inode | 156 | drivers/char/mem.c | static int read_null(struct inode * node,struct file * file,char * buf,int count) |
inode | 161 | drivers/char/mem.c | static int write_null(struct inode * inode,struct file * file,char * buf, int count) |
inode | 166 | drivers/char/mem.c | static int read_zero(struct inode * node,struct file * file,char * buf,int count) |
inode | 177 | drivers/char/mem.c | static int mmap_zero(struct inode * inode, struct file * file, |
inode | 199 | drivers/char/mem.c | mpnt->vm_inode = inode; |
inode | 200 | drivers/char/mem.c | inode->i_count++; |
inode | 204 | drivers/char/mem.c | merge_segments(current->mmap, ignoff_mergep, inode); |
inode | 213 | drivers/char/mem.c | static int null_lseek(struct inode * inode, struct file * file, off_t offset, int orig) |
inode | 225 | drivers/char/mem.c | static int memory_lseek(struct inode * inode, struct file * file, off_t offset, int orig) |
inode | 324 | drivers/char/mem.c | static int memory_open(struct inode * inode, struct file * filp) |
inode | 326 | drivers/char/mem.c | switch (MINOR(inode->i_rdev)) { |
inode | 349 | drivers/char/mem.c | return filp->f_op->open(inode,filp); |
inode | 38 | drivers/char/mouse.c | static int mouse_open(struct inode * inode, struct file * file) |
inode | 40 | drivers/char/mouse.c | int minor = MINOR(inode->i_rdev); |
inode | 66 | drivers/char/mouse.c | return file->f_op->open(inode,file); |
inode | 74 | drivers/char/msbusmouse.c | static void release_mouse(struct inode * inode, struct file * file) |
inode | 81 | drivers/char/msbusmouse.c | static int open_mouse(struct inode * inode, struct file * file) |
inode | 100 | drivers/char/msbusmouse.c | static int write_mouse(struct inode * inode, struct file * file, char * buffer, int count) |
inode | 105 | drivers/char/msbusmouse.c | static int read_mouse(struct inode * inode, struct file * file, char * buffer, int count) |
inode | 126 | drivers/char/msbusmouse.c | static int mouse_select(struct inode *inode, struct file *file, int sel_type, select_table * wait) |
inode | 233 | drivers/char/psaux.c | static void release_aux(struct inode * inode, struct file * file) |
inode | 245 | drivers/char/psaux.c | static void release_qp(struct inode * inode, struct file * file) |
inode | 265 | drivers/char/psaux.c | static int open_aux(struct inode * inode, struct file * file) |
inode | 295 | drivers/char/psaux.c | static int open_qp(struct inode * inode, struct file * file) |
inode | 335 | drivers/char/psaux.c | static int write_aux(struct inode * inode, struct file * file, char * buffer, int count) |
inode | 347 | drivers/char/psaux.c | inode->i_mtime = CURRENT_TIME; |
inode | 357 | drivers/char/psaux.c | static int write_qp(struct inode * inode, struct file * file, char * buffer, int count) |
inode | 366 | drivers/char/psaux.c | inode->i_mtime = CURRENT_TIME; |
inode | 376 | drivers/char/psaux.c | static int read_aux(struct inode * inode, struct file * file, char * buffer, int count) |
inode | 402 | drivers/char/psaux.c | inode->i_atime = CURRENT_TIME; |
inode | 411 | drivers/char/psaux.c | static int aux_select(struct inode *inode, struct file *file, int sel_type, select_table * wait) |
inode | 1772 | drivers/char/tpqic02.c | static int tape_qic02_lseek(struct inode * inode, struct file * file, off_t offset, int origin) |
inode | 1810 | drivers/char/tpqic02.c | static int tape_qic02_read(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 1813 | drivers/char/tpqic02.c | dev_t dev = inode->i_rdev; |
inode | 1980 | drivers/char/tpqic02.c | static int tape_qic02_write(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 1983 | drivers/char/tpqic02.c | dev_t dev = inode->i_rdev; |
inode | 2127 | drivers/char/tpqic02.c | static int tape_qic02_open(struct inode * inode, struct file * filp) |
inode | 2129 | drivers/char/tpqic02.c | dev_t dev = inode->i_rdev; |
inode | 2284 | drivers/char/tpqic02.c | static int tape_qic02_readdir(struct inode * inode, struct file * filp, struct dirent * dp, int count) |
inode | 2290 | drivers/char/tpqic02.c | static void tape_qic02_release(struct inode * inode, struct file * filp) |
inode | 2292 | drivers/char/tpqic02.c | dev_t dev = inode->i_rdev; |
inode | 2324 | drivers/char/tpqic02.c | static int tape_qic02_ioctl(struct inode * inode, struct file * filp, |
inode | 2329 | drivers/char/tpqic02.c | int dev_maj = MAJOR(inode->i_rdev); |
inode | 2342 | drivers/char/tpqic02.c | if (!inode || !ioarg) |
inode | 79 | drivers/char/tty_io.c | static int tty_read(struct inode *, struct file *, char *, int); |
inode | 80 | drivers/char/tty_io.c | static int tty_write(struct inode *, struct file *, char *, int); |
inode | 81 | drivers/char/tty_io.c | static int tty_select(struct inode *, struct file *, int, select_table *); |
inode | 82 | drivers/char/tty_io.c | static int tty_open(struct inode *, struct file *); |
inode | 83 | drivers/char/tty_io.c | static void tty_release(struct inode *, struct file *); |
inode | 183 | drivers/char/tty_io.c | static int hung_up_tty_read(struct inode * inode, struct file * file, char * buf, int count) |
inode | 188 | drivers/char/tty_io.c | static int hung_up_tty_write(struct inode * inode, struct file * file, char * buf, int count) |
inode | 193 | drivers/char/tty_io.c | static int hung_up_tty_select(struct inode * inode, struct file * filp, int sel_type, select_table * wait) |
inode | 198 | drivers/char/tty_io.c | static int hung_up_tty_ioctl(struct inode * inode, struct file * file, |
inode | 204 | drivers/char/tty_io.c | static int tty_lseek(struct inode * inode, struct file * file, off_t offset, int orig) |
inode | 994 | drivers/char/tty_io.c | static int tty_read(struct inode * inode, struct file * file, char * buf, int count) |
inode | 1008 | drivers/char/tty_io.c | if ((inode->i_rdev != 0x0400) && /* don't stop on /dev/console */ |
inode | 1023 | drivers/char/tty_io.c | inode->i_atime = CURRENT_TIME; |
inode | 1027 | drivers/char/tty_io.c | static int tty_write(struct inode * inode, struct file * file, char * buf, int count) |
inode | 1033 | drivers/char/tty_io.c | is_console = (inode->i_rdev == 0x0400); |
inode | 1059 | drivers/char/tty_io.c | inode->i_mtime = CURRENT_TIME; |
inode | 1287 | drivers/char/tty_io.c | static int tty_open(struct inode * inode, struct file * filp) |
inode | 1293 | drivers/char/tty_io.c | minor = MINOR(inode->i_rdev); |
inode | 1294 | drivers/char/tty_io.c | major = MAJOR(inode->i_rdev); |
inode | 1308 | drivers/char/tty_io.c | printk("Bad major #%d in tty_open\n", MAJOR(inode->i_rdev)); |
inode | 1360 | drivers/char/tty_io.c | static void tty_release(struct inode * inode, struct file * filp) |
inode | 1377 | drivers/char/tty_io.c | static int tty_select(struct inode * inode, struct file * filp, int sel_type, select_table * wait) |
inode | 412 | drivers/char/tty_ioctl.c | int tty_ioctl(struct inode * inode, struct file * file, |
inode | 50 | drivers/scsi/sd.c | extern int sd_ioctl(struct inode *, struct file *, unsigned int, unsigned long); |
inode | 56 | drivers/scsi/sd.c | static int sd_open(struct inode * inode, struct file * filp) |
inode | 59 | drivers/scsi/sd.c | target = DEVICE_NR(MINOR(inode->i_rdev)); |
inode | 70 | drivers/scsi/sd.c | check_disk_change(inode->i_rdev); |
inode | 73 | drivers/scsi/sd.c | sd_ioctl(inode, NULL, SCSI_IOCTL_DOORLOCK, 0); |
inode | 79 | drivers/scsi/sd.c | static void sd_release(struct inode * inode, struct file * file) |
inode | 82 | drivers/scsi/sd.c | sync_dev(inode->i_rdev); |
inode | 84 | drivers/scsi/sd.c | target = DEVICE_NR(MINOR(inode->i_rdev)); |
inode | 90 | drivers/scsi/sd.c | sd_ioctl(inode, NULL, SCSI_IOCTL_DOORUNLOCK, 0); |
inode | 619 | drivers/scsi/sd.c | struct inode inode; |
inode | 630 | drivers/scsi/sd.c | inode.i_rdev = full_dev; /* This is all we really need here */ |
inode | 631 | drivers/scsi/sd.c | retval = sd_ioctl(&inode, NULL, SCSI_IOCTL_TEST_UNIT_READY, 0); |
inode | 17 | drivers/scsi/sd_ioctl.c | int sd_ioctl(struct inode * inode, struct file * file, unsigned int cmd, unsigned long arg) |
inode | 19 | drivers/scsi/sd_ioctl.c | int dev = inode->i_rdev; |
inode | 45 | drivers/scsi/sd_ioctl.c | put_fs_long(sd[MINOR(inode->i_rdev)].start_sect, |
inode | 53 | drivers/scsi/sd_ioctl.c | put_fs_long(sd[MINOR(inode->i_rdev)].nr_sects, |
inode | 58 | drivers/scsi/sd_ioctl.c | if(!inode->i_rdev) return -EINVAL; |
inode | 59 | drivers/scsi/sd_ioctl.c | fsync_dev(inode->i_rdev); |
inode | 60 | drivers/scsi/sd_ioctl.c | invalidate_buffers(inode->i_rdev); |
inode | 54 | drivers/scsi/sg.c | static int sg_ioctl(struct inode * inode,struct file * file, |
inode | 57 | drivers/scsi/sg.c | int dev = MINOR(inode->i_rdev); |
inode | 72 | drivers/scsi/sg.c | static int sg_open(struct inode * inode, struct file * filp) |
inode | 74 | drivers/scsi/sg.c | int dev=MINOR(inode->i_rdev); |
inode | 112 | drivers/scsi/sg.c | static void sg_close(struct inode * inode, struct file * filp) |
inode | 114 | drivers/scsi/sg.c | int dev=MINOR(inode->i_rdev); |
inode | 153 | drivers/scsi/sg.c | static int sg_read(struct inode *inode,struct file *filp,char *buf,int count) |
inode | 155 | drivers/scsi/sg.c | int dev=MINOR(inode->i_rdev); |
inode | 207 | drivers/scsi/sg.c | static int sg_write(struct inode *inode,struct file *filp,char *buf,int count) |
inode | 209 | drivers/scsi/sg.c | int dev=MINOR(inode->i_rdev); |
inode | 41 | drivers/scsi/sr.c | static int sr_open(struct inode *, struct file *); |
inode | 44 | drivers/scsi/sr.c | extern int sr_ioctl(struct inode *, struct file *, unsigned int, unsigned long); |
inode | 48 | drivers/scsi/sr.c | static void sr_release(struct inode * inode, struct file * file) |
inode | 50 | drivers/scsi/sr.c | sync_dev(inode->i_rdev); |
inode | 51 | drivers/scsi/sr.c | if(! --scsi_CDs[MINOR(inode->i_rdev)].device->access_count) |
inode | 52 | drivers/scsi/sr.c | sr_ioctl(inode, NULL, SCSI_IOCTL_DOORUNLOCK, 0); |
inode | 81 | drivers/scsi/sr.c | struct inode inode; |
inode | 90 | drivers/scsi/sr.c | inode.i_rdev = full_dev; /* This is all we really need here */ |
inode | 91 | drivers/scsi/sr.c | retval = sr_ioctl(&inode, NULL, SCSI_IOCTL_TEST_UNIT_READY, 0); |
inode | 255 | drivers/scsi/sr.c | static int sr_open(struct inode * inode, struct file * filp) |
inode | 257 | drivers/scsi/sr.c | if(MINOR(inode->i_rdev) >= NR_SR || |
inode | 258 | drivers/scsi/sr.c | !scsi_CDs[MINOR(inode->i_rdev)].device) return -ENODEV; /* No such device */ |
inode | 260 | drivers/scsi/sr.c | check_disk_change(inode->i_rdev); |
inode | 262 | drivers/scsi/sr.c | if(!scsi_CDs[MINOR(inode->i_rdev)].device->access_count++) |
inode | 263 | drivers/scsi/sr.c | sr_ioctl(inode, NULL, SCSI_IOCTL_DOORLOCK, 0); |
inode | 270 | drivers/scsi/sr.c | if(scsi_CDs[MINOR(inode->i_rdev)].needs_sector_size) |
inode | 271 | drivers/scsi/sr.c | get_sectorsize(MINOR(inode->i_rdev)); |
inode | 93 | drivers/scsi/sr_ioctl.c | int sr_ioctl(struct inode * inode, struct file * file, unsigned int cmd, unsigned long arg) |
inode | 97 | drivers/scsi/sr_ioctl.c | int dev = inode->i_rdev; |
inode | 259 | drivers/scsi/sr_ioctl.c | sr_ioctl (inode, NULL, SCSI_IOCTL_DOORUNLOCK, 0); |
inode | 96 | drivers/scsi/st.c | static int st_int_ioctl(struct inode * inode,struct file * file, |
inode | 241 | drivers/scsi/st.c | static int flush_buffer(struct inode * inode, struct file * filp, |
inode | 247 | drivers/scsi/st.c | dev = MINOR(inode->i_rdev) & 127; |
inode | 263 | drivers/scsi/st.c | result = st_int_ioctl(inode, filp, MTBSR, backspace); |
inode | 275 | drivers/scsi/st.c | static int scsi_tape_open(struct inode * inode, struct file * filp) |
inode | 283 | drivers/scsi/st.c | dev = MINOR(inode->i_rdev) & 127; |
inode | 471 | drivers/scsi/st.c | static void scsi_tape_close(struct inode * inode, struct file * filp) |
inode | 479 | drivers/scsi/st.c | dev = MINOR(inode->i_rdev); |
inode | 520 | drivers/scsi/st.c | st_int_ioctl(inode, filp, MTBSF, 1); /* Back over the EOF hit */ |
inode | 522 | drivers/scsi/st.c | flush_buffer(inode, filp, 0); |
inode | 527 | drivers/scsi/st.c | st_int_ioctl(inode, filp, MTREW, 1); |
inode | 537 | drivers/scsi/st.c | int st_write(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 545 | drivers/scsi/st.c | dev = MINOR(inode->i_rdev) & 127; |
inode | 560 | drivers/scsi/st.c | retval = flush_buffer(inode, filp, 0); |
inode | 701 | drivers/scsi/st.c | int st_read(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 709 | drivers/scsi/st.c | dev = MINOR(inode->i_rdev) & 127; |
inode | 721 | drivers/scsi/st.c | transfer = flush_buffer(inode, filp, 0); |
inode | 885 | drivers/scsi/st.c | static int st_int_ioctl(struct inode * inode,struct file * file, |
inode | 888 | drivers/scsi/st.c | int dev = MINOR(inode->i_rdev); |
inode | 1109 | drivers/scsi/st.c | ioctl_result = st_int_ioctl(inode, file, MTFSF, 1); |
inode | 1111 | drivers/scsi/st.c | ioctl_result = st_int_ioctl(inode, file, MTBSF, 1); |
inode | 1147 | drivers/scsi/st.c | static int st_ioctl(struct inode * inode,struct file * file, |
inode | 1150 | drivers/scsi/st.c | int dev = MINOR(inode->i_rdev); |
inode | 1177 | drivers/scsi/st.c | i = flush_buffer(inode, file, mtc.mt_op == MTSEEK || |
inode | 1183 | drivers/scsi/st.c | return st_int_ioctl(inode, file, mtc.mt_op, mtc.mt_count); |
inode | 1204 | drivers/scsi/st.c | i = flush_buffer(inode, file, 0); |
inode | 198 | drivers/sound/soundcard.c | sound_read (struct inode *inode, struct file *file, char *buf, int count) |
inode | 202 | drivers/sound/soundcard.c | dev = inode->i_rdev; |
inode | 239 | drivers/sound/soundcard.c | sound_write (struct inode *inode, struct file *file, char *buf, int count) |
inode | 243 | drivers/sound/soundcard.c | dev = inode->i_rdev; |
inode | 272 | drivers/sound/soundcard.c | sound_lseek (struct inode *inode, struct file *file, off_t offset, int orig) |
inode | 278 | drivers/sound/soundcard.c | sound_open (struct inode *inode, struct file *file) |
inode | 282 | drivers/sound/soundcard.c | dev = inode->i_rdev; |
inode | 368 | drivers/sound/soundcard.c | sound_release (struct inode *inode, struct file *file) |
inode | 372 | drivers/sound/soundcard.c | dev = inode->i_rdev; |
inode | 417 | drivers/sound/soundcard.c | sound_ioctl (struct inode *inode, struct file *file, |
inode | 422 | drivers/sound/soundcard.c | dev = inode->i_rdev; |
inode | 469 | drivers/sound/soundcard.c | sound_select (struct inode *inode, struct file *file, int sel_type, select_table * wait) |
inode | 473 | drivers/sound/soundcard.c | dev = inode->i_rdev; |
inode | 56 | fs/binfmt_elf.c | struct inode *interpreter_inode; |
inode | 82 | fs/binfmt_elf.c | (!bprm->inode->i_op || !bprm->inode->i_op->default_file_ops || |
inode | 83 | fs/binfmt_elf.c | !bprm->inode->i_op->default_file_ops->mmap)){ |
inode | 94 | fs/binfmt_elf.c | retval = read_exec(bprm->inode, elf_ex.e_phoff, (char *) elf_phdata, |
inode | 107 | fs/binfmt_elf.c | elf_exec_fileno = open_inode(bprm->inode, O_RDONLY); |
inode | 133 | fs/binfmt_elf.c | retval = read_exec(bprm->inode,elf_ppnt->p_offset,elf_interpreter, |
inode | 304 | fs/binfmt_elf.c | current->executable = bprm->inode; |
inode | 305 | fs/binfmt_elf.c | bprm->inode->i_count++; |
inode | 341 | fs/binfmt_elf.c | struct inode * inode; |
inode | 351 | fs/binfmt_elf.c | inode = file->f_inode; |
inode | 355 | fs/binfmt_elf.c | if (file->f_op->read(inode, file, (char *) &elf_ex, sizeof(elf_ex)) != sizeof(elf_ex)) { |
inode | 368 | fs/binfmt_elf.c | (!inode->i_op || !inode->i_op->bmap || |
inode | 369 | fs/binfmt_elf.c | !inode->i_op->default_file_ops->mmap)){ |
inode | 383 | fs/binfmt_elf.c | retval = read_exec(inode, elf_ex.e_phoff, (char *) elf_phdata, |
inode | 17 | fs/block_dev.c | int block_write(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 29 | fs/block_dev.c | dev = inode->i_rdev; |
inode | 78 | fs/block_dev.c | int block_read(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 95 | fs/block_dev.c | dev = inode->i_rdev; |
inode | 212 | fs/block_dev.c | int block_fsync(struct inode *inode, struct file *filp) |
inode | 214 | fs/block_dev.c | return fsync_dev (inode->i_rdev); |
inode | 172 | fs/buffer.c | int file_fsync (struct inode *inode, struct file *filp) |
inode | 174 | fs/buffer.c | return fsync_dev(inode->i_dev); |
inode | 180 | fs/buffer.c | struct inode * inode; |
inode | 182 | fs/buffer.c | if (fd>=NR_OPEN || !(file=current->filp[fd]) || !(inode=file->f_inode)) |
inode | 186 | fs/buffer.c | if (file->f_op->fsync(inode,file)) |
inode | 97 | fs/devices.c | int blkdev_open(struct inode * inode, struct file * filp) |
inode | 101 | fs/devices.c | i = MAJOR(inode->i_rdev); |
inode | 106 | fs/devices.c | return filp->f_op->open(inode,filp); |
inode | 148 | fs/devices.c | int chrdev_open(struct inode * inode, struct file * filp) |
inode | 152 | fs/devices.c | i = MAJOR(inode->i_rdev); |
inode | 157 | fs/devices.c | return filp->f_op->open(inode,filp); |
inode | 56 | fs/exec.c | int open_inode(struct inode * inode, int mode) |
inode | 61 | fs/exec.c | if (!inode->i_op || !inode->i_op->default_file_ops) |
inode | 78 | fs/exec.c | f->f_inode = inode; |
inode | 81 | fs/exec.c | f->f_op = inode->i_op->default_file_ops; |
inode | 83 | fs/exec.c | error = f->f_op->open(inode,f); |
inode | 90 | fs/exec.c | inode->i_count++; |
inode | 99 | fs/exec.c | while (file.f_op->write(inode,&file,(char *)(addr),(nr)) != (nr)) goto close_coredump |
inode | 103 | fs/exec.c | if (file.f_op->lseek(inode,&file,(offset),0) != (offset)) \ |
inode | 118 | fs/exec.c | struct inode * inode = NULL; |
inode | 138 | fs/exec.c | if (open_namei(corefile,O_CREAT | 2 | O_TRUNC,0600,&inode,NULL)) { |
inode | 139 | fs/exec.c | inode = NULL; |
inode | 142 | fs/exec.c | if (!S_ISREG(inode->i_mode)) |
inode | 144 | fs/exec.c | if (!inode->i_op || !inode->i_op->default_file_ops) |
inode | 149 | fs/exec.c | file.f_inode = inode; |
inode | 152 | fs/exec.c | file.f_op = inode->i_op->default_file_ops; |
inode | 154 | fs/exec.c | if (file.f_op->open(inode,&file)) |
inode | 221 | fs/exec.c | file.f_op->release(inode,&file); |
inode | 224 | fs/exec.c | iput(inode); |
inode | 414 | fs/exec.c | int read_exec(struct inode *inode, unsigned long offset, |
inode | 420 | fs/exec.c | if (!inode->i_op || !inode->i_op->default_file_ops) |
inode | 425 | fs/exec.c | file.f_inode = inode; |
inode | 428 | fs/exec.c | file.f_op = inode->i_op->default_file_ops; |
inode | 430 | fs/exec.c | if (file.f_op->open(inode,&file)) |
inode | 435 | fs/exec.c | if (file.f_op->lseek(inode,&file,offset,0) != offset) |
inode | 444 | fs/exec.c | result = file.f_op->read(inode, &file, addr, count); |
inode | 447 | fs/exec.c | file.f_op->release(inode,&file); |
inode | 510 | fs/exec.c | !permission(bprm->inode,MAY_READ)) |
inode | 547 | fs/exec.c | retval = open_namei(filename, 0, 0, &bprm.inode, NULL); |
inode | 555 | fs/exec.c | if (!S_ISREG(bprm.inode->i_mode)) { /* must be regular file */ |
inode | 559 | fs/exec.c | if (IS_NOEXEC(bprm.inode)) { /* FS mustn't be mounted noexec */ |
inode | 563 | fs/exec.c | if (!bprm.inode->i_sb) { |
inode | 567 | fs/exec.c | i = bprm.inode->i_mode; |
inode | 568 | fs/exec.c | if (IS_NOSUID(bprm.inode) && (((i & S_ISUID) && bprm.inode->i_uid != current-> |
inode | 569 | fs/exec.c | euid) || ((i & S_ISGID) && !in_group_p(bprm.inode->i_gid))) && |
inode | 579 | fs/exec.c | bprm.e_uid = (i & S_ISUID) ? bprm.inode->i_uid : current->euid; |
inode | 580 | fs/exec.c | bprm.e_gid = (i & S_ISGID) ? bprm.inode->i_gid : current->egid; |
inode | 582 | fs/exec.c | if (current->euid == bprm.inode->i_uid) |
inode | 584 | fs/exec.c | else if (in_group_p(bprm.inode->i_gid)) |
inode | 587 | fs/exec.c | !((bprm.inode->i_mode & 0111) && suser())) { |
inode | 594 | fs/exec.c | retval = read_exec(bprm.inode,0,bprm.buf,128); |
inode | 606 | fs/exec.c | iput(bprm.inode); |
inode | 666 | fs/exec.c | retval = open_namei(interp, 0, 0, &bprm.inode, NULL); |
inode | 688 | fs/exec.c | iput(bprm.inode); |
inode | 694 | fs/exec.c | iput(bprm.inode); |
inode | 755 | fs/exec.c | bprm->inode->i_size < ex.a_text+ex.a_data+ex.a_syms+N_TXTOFF(ex)) { |
inode | 760 | fs/exec.c | (N_TXTOFF(ex) < bprm->inode->i_sb->s_blocksize)) { |
inode | 786 | fs/exec.c | read_exec(bprm->inode, 32, (char *) 0, ex.a_text+ex.a_data); |
inode | 791 | fs/exec.c | fd = open_inode(bprm->inode, O_RDONLY); |
inode | 801 | fs/exec.c | read_exec(bprm->inode, N_TXTOFF(ex), |
inode | 823 | fs/exec.c | current->executable = bprm->inode; |
inode | 824 | fs/exec.c | bprm->inode->i_count++; |
inode | 845 | fs/exec.c | struct inode * inode; |
inode | 852 | fs/exec.c | inode = file->f_inode; |
inode | 855 | fs/exec.c | if (file->f_op->read(inode, file, (char *) &ex, sizeof(ex)) != sizeof(ex)) { |
inode | 863 | fs/exec.c | inode->i_size < ex.a_text+ex.a_data+ex.a_syms+N_TXTOFF(ex)) { |
inode | 867 | fs/exec.c | (N_TXTOFF(ex) < inode->i_sb->s_blocksize)) { |
inode | 23 | fs/ext/dir.c | static int ext_dir_read(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 28 | fs/ext/dir.c | static int ext_readdir(struct inode *, struct file *, struct dirent *, int); |
inode | 64 | fs/ext/dir.c | static int ext_readdir(struct inode * inode, struct file * filp, |
inode | 72 | fs/ext/dir.c | if (!inode || !S_ISDIR(inode->i_mode)) |
inode | 76 | fs/ext/dir.c | while (filp->f_pos < inode->i_size) { |
inode | 78 | fs/ext/dir.c | bh = ext_bread(inode,(filp->f_pos)>>BLOCK_SIZE_BITS,0); |
inode | 84 | fs/ext/dir.c | while (offset < 1024 && filp->f_pos < inode->i_size) { |
inode | 90 | fs/ext/dir.c | inode->i_dev, inode->i_ino, offset, de->rec_len, de->name_len); |
inode | 92 | fs/ext/dir.c | if (filp->f_pos > inode->i_size) |
inode | 93 | fs/ext/dir.c | filp->f_pos = inode->i_size; |
inode | 98 | fs/ext/dir.c | if (de->inode) { |
inode | 105 | fs/ext/dir.c | put_fs_long(de->inode,&dirent->d_ino); |
inode | 34 | fs/ext/file.c | static int ext_file_read(struct inode *, struct file *, char *, int); |
inode | 35 | fs/ext/file.c | static int ext_file_write(struct inode *, struct file *, char *, int); |
inode | 72 | fs/ext/file.c | static int ext_file_read(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 82 | fs/ext/file.c | if (!inode) { |
inode | 86 | fs/ext/file.c | if (!S_ISREG(inode->i_mode)) { |
inode | 87 | fs/ext/file.c | printk("ext_file_read: mode = %07o\n",inode->i_mode); |
inode | 91 | fs/ext/file.c | size = inode->i_size; |
inode | 107 | fs/ext/file.c | blocks += read_ahead[MAJOR(inode->i_dev)] / (BLOCK_SIZE >> 9); |
inode | 127 | fs/ext/file.c | *bhb = ext_getblk(inode, block++, 0); |
inode | 189 | fs/ext/file.c | if (!IS_RDONLY(inode)) { |
inode | 190 | fs/ext/file.c | inode->i_atime = CURRENT_TIME; |
inode | 191 | fs/ext/file.c | inode->i_dirt = 1; |
inode | 196 | fs/ext/file.c | static int ext_file_write(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 203 | fs/ext/file.c | if (!inode) { |
inode | 207 | fs/ext/file.c | if (!S_ISREG(inode->i_mode)) { |
inode | 208 | fs/ext/file.c | printk("ext_file_write: mode = %07o\n",inode->i_mode); |
inode | 216 | fs/ext/file.c | pos = inode->i_size; |
inode | 221 | fs/ext/file.c | bh = ext_getblk(inode,pos/BLOCK_SIZE,1); |
inode | 242 | fs/ext/file.c | if (pos > inode->i_size) { |
inode | 243 | fs/ext/file.c | inode->i_size = pos; |
inode | 244 | fs/ext/file.c | inode->i_dirt = 1; |
inode | 253 | fs/ext/file.c | inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
inode | 255 | fs/ext/file.c | inode->i_dirt = 1; |
inode | 182 | fs/ext/freelists.c | void ext_free_inode(struct inode * inode) |
inode | 191 | fs/ext/freelists.c | if (!inode) |
inode | 193 | fs/ext/freelists.c | if (!inode->i_dev) { |
inode | 197 | fs/ext/freelists.c | if (inode->i_count != 1) { |
inode | 198 | fs/ext/freelists.c | printk("free_inode: inode has count=%d\n",inode->i_count); |
inode | 201 | fs/ext/freelists.c | if (inode->i_nlink) { |
inode | 202 | fs/ext/freelists.c | printk("free_inode: inode has nlink=%d\n",inode->i_nlink); |
inode | 205 | fs/ext/freelists.c | if (!inode->i_sb) { |
inode | 209 | fs/ext/freelists.c | sb = inode->i_sb; |
inode | 210 | fs/ext/freelists.c | ino = inode->i_ino; |
inode | 211 | fs/ext/freelists.c | dev = inode->i_dev; |
inode | 212 | fs/ext/freelists.c | clear_inode(inode); |
inode | 246 | fs/ext/freelists.c | struct inode * ext_new_inode(const struct inode * dir) |
inode | 249 | fs/ext/freelists.c | struct inode * inode; |
inode | 254 | fs/ext/freelists.c | if (!dir || !(inode=get_empty_inode())) |
inode | 257 | fs/ext/freelists.c | inode->i_sb = sb; |
inode | 258 | fs/ext/freelists.c | inode->i_flags = sb->s_flags; |
inode | 289 | fs/ext/freelists.c | inode->i_count = 1; |
inode | 290 | fs/ext/freelists.c | inode->i_nlink = 1; |
inode | 291 | fs/ext/freelists.c | inode->i_dev = sb->s_dev; |
inode | 292 | fs/ext/freelists.c | inode->i_uid = current->euid; |
inode | 293 | fs/ext/freelists.c | inode->i_gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->egid; |
inode | 294 | fs/ext/freelists.c | inode->i_dirt = 1; |
inode | 295 | fs/ext/freelists.c | inode->i_ino = j; |
inode | 296 | fs/ext/freelists.c | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; |
inode | 297 | fs/ext/freelists.c | inode->i_op = NULL; |
inode | 298 | fs/ext/freelists.c | inode->i_blocks = inode->i_blksize = 0; |
inode | 299 | fs/ext/freelists.c | insert_inode_hash(inode); |
inode | 301 | fs/ext/freelists.c | printk("ext_new_inode : allocating inode %d\n", inode->i_ino); |
inode | 304 | fs/ext/freelists.c | return inode; |
inode | 31 | fs/ext/fsync.c | static int sync_block (struct inode * inode, unsigned long * block, int wait) |
inode | 39 | fs/ext/fsync.c | bh = get_hash_table(inode->i_dev, *block, blocksize); |
inode | 60 | fs/ext/fsync.c | static int sync_iblock (struct inode * inode, unsigned long * iblock, |
inode | 69 | fs/ext/fsync.c | rc = sync_block (inode, iblock, wait); |
inode | 72 | fs/ext/fsync.c | *bh = bread(inode->i_dev, tmp, blocksize); |
inode | 84 | fs/ext/fsync.c | static int sync_direct(struct inode *inode, int wait) |
inode | 90 | fs/ext/fsync.c | rc = sync_block (inode, inode->u.ext_i.i_data + i, wait); |
inode | 99 | fs/ext/fsync.c | static int sync_indirect(struct inode *inode, unsigned long *iblock, int wait) |
inode | 105 | fs/ext/fsync.c | rc = sync_iblock (inode, iblock, &ind_bh, wait); |
inode | 110 | fs/ext/fsync.c | rc = sync_block (inode, |
inode | 122 | fs/ext/fsync.c | static int sync_dindirect(struct inode *inode, unsigned long *diblock, |
inode | 129 | fs/ext/fsync.c | rc = sync_iblock (inode, diblock, &dind_bh, wait); |
inode | 134 | fs/ext/fsync.c | rc = sync_indirect (inode, |
inode | 146 | fs/ext/fsync.c | static int sync_tindirect(struct inode *inode, unsigned long *tiblock, |
inode | 153 | fs/ext/fsync.c | rc = sync_iblock (inode, tiblock, &tind_bh, wait); |
inode | 158 | fs/ext/fsync.c | rc = sync_dindirect (inode, |
inode | 170 | fs/ext/fsync.c | int ext_sync_file(struct inode * inode, struct file *file) |
inode | 174 | fs/ext/fsync.c | if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || |
inode | 175 | fs/ext/fsync.c | S_ISLNK(inode->i_mode))) |
inode | 179 | fs/ext/fsync.c | err |= sync_direct(inode, wait); |
inode | 180 | fs/ext/fsync.c | err |= sync_indirect(inode, inode->u.ext_i.i_data+9, wait); |
inode | 181 | fs/ext/fsync.c | err |= sync_dindirect(inode, inode->u.ext_i.i_data+10, wait); |
inode | 182 | fs/ext/fsync.c | err |= sync_tindirect(inode, inode->u.ext_i.i_data+11, wait); |
inode | 184 | fs/ext/fsync.c | err |= ext_sync_inode (inode); |
inode | 24 | fs/ext/inode.c | void ext_put_inode(struct inode *inode) |
inode | 26 | fs/ext/inode.c | if (inode->i_nlink) |
inode | 28 | fs/ext/inode.c | inode->i_size = 0; |
inode | 29 | fs/ext/inode.c | ext_truncate(inode); |
inode | 30 | fs/ext/inode.c | ext_free_inode(inode); |
inode | 164 | fs/ext/inode.c | #define inode_bmap(inode,nr) ((inode)->u.ext_i.i_data[(nr)]) |
inode | 177 | fs/ext/inode.c | int ext_bmap(struct inode * inode,int block) |
inode | 190 | fs/ext/inode.c | return inode_bmap(inode,block); |
inode | 193 | fs/ext/inode.c | i = inode_bmap(inode,9); |
inode | 196 | fs/ext/inode.c | return block_bmap(bread(inode->i_dev,i,BLOCK_SIZE),block); |
inode | 200 | fs/ext/inode.c | i = inode_bmap(inode,10); |
inode | 203 | fs/ext/inode.c | i = block_bmap(bread(inode->i_dev,i,BLOCK_SIZE),block>>8); |
inode | 206 | fs/ext/inode.c | return block_bmap(bread(inode->i_dev,i,BLOCK_SIZE),block & 255); |
inode | 209 | fs/ext/inode.c | i = inode_bmap(inode,11); |
inode | 212 | fs/ext/inode.c | i = block_bmap(bread(inode->i_dev,i,BLOCK_SIZE),block>>16); |
inode | 215 | fs/ext/inode.c | i = block_bmap(bread(inode->i_dev,i,BLOCK_SIZE),(block>>8) & 255); |
inode | 218 | fs/ext/inode.c | return block_bmap(bread(inode->i_dev,i,BLOCK_SIZE),block & 255); |
inode | 221 | fs/ext/inode.c | static struct buffer_head * inode_getblk(struct inode * inode, int nr, int create) |
inode | 227 | fs/ext/inode.c | p = inode->u.ext_i.i_data + nr; |
inode | 231 | fs/ext/inode.c | result = getblk(inode->i_dev, tmp, BLOCK_SIZE); |
inode | 239 | fs/ext/inode.c | tmp = ext_new_block(inode->i_sb); |
inode | 242 | fs/ext/inode.c | result = getblk(inode->i_dev, tmp, BLOCK_SIZE); |
inode | 244 | fs/ext/inode.c | ext_free_block(inode->i_sb,tmp); |
inode | 249 | fs/ext/inode.c | inode->i_ctime = CURRENT_TIME; |
inode | 250 | fs/ext/inode.c | inode->i_dirt = 1; |
inode | 254 | fs/ext/inode.c | static struct buffer_head * block_getblk(struct inode * inode, |
inode | 287 | fs/ext/inode.c | tmp = ext_new_block(inode->i_sb); |
inode | 294 | fs/ext/inode.c | ext_free_block(inode->i_sb,tmp); |
inode | 304 | fs/ext/inode.c | struct buffer_head * ext_getblk(struct inode * inode, int block, int create) |
inode | 317 | fs/ext/inode.c | return inode_getblk(inode,block,create); |
inode | 320 | fs/ext/inode.c | bh = inode_getblk(inode,9,create); |
inode | 321 | fs/ext/inode.c | return block_getblk(inode,bh,block,create); |
inode | 325 | fs/ext/inode.c | bh = inode_getblk(inode,10,create); |
inode | 326 | fs/ext/inode.c | bh = block_getblk(inode,bh,block>>8,create); |
inode | 327 | fs/ext/inode.c | return block_getblk(inode,bh,block & 255,create); |
inode | 330 | fs/ext/inode.c | bh = inode_getblk(inode,11,create); |
inode | 331 | fs/ext/inode.c | bh = block_getblk(inode,bh,block>>16,create); |
inode | 332 | fs/ext/inode.c | bh = block_getblk(inode,bh,(block>>8) & 255,create); |
inode | 333 | fs/ext/inode.c | return block_getblk(inode,bh,block & 255,create); |
inode | 336 | fs/ext/inode.c | struct buffer_head * ext_bread(struct inode * inode, int block, int create) |
inode | 340 | fs/ext/inode.c | bh = ext_getblk(inode,block,create); |
inode | 351 | fs/ext/inode.c | void ext_read_inode(struct inode * inode) |
inode | 357 | fs/ext/inode.c | block = 2 + (inode->i_ino-1)/EXT_INODES_PER_BLOCK; |
inode | 358 | fs/ext/inode.c | if (!(bh=bread(inode->i_dev, block, BLOCK_SIZE))) |
inode | 361 | fs/ext/inode.c | (inode->i_ino-1)%EXT_INODES_PER_BLOCK; |
inode | 362 | fs/ext/inode.c | inode->i_mode = raw_inode->i_mode; |
inode | 363 | fs/ext/inode.c | inode->i_uid = raw_inode->i_uid; |
inode | 364 | fs/ext/inode.c | inode->i_gid = raw_inode->i_gid; |
inode | 365 | fs/ext/inode.c | inode->i_nlink = raw_inode->i_nlinks; |
inode | 366 | fs/ext/inode.c | inode->i_size = raw_inode->i_size; |
inode | 367 | fs/ext/inode.c | inode->i_mtime = inode->i_atime = inode->i_ctime = raw_inode->i_time; |
inode | 368 | fs/ext/inode.c | inode->i_blocks = inode->i_blksize = 0; |
inode | 369 | fs/ext/inode.c | if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) |
inode | 370 | fs/ext/inode.c | inode->i_rdev = raw_inode->i_zone[0]; |
inode | 372 | fs/ext/inode.c | inode->u.ext_i.i_data[block] = raw_inode->i_zone[block]; |
inode | 374 | fs/ext/inode.c | inode->i_op = NULL; |
inode | 375 | fs/ext/inode.c | if (S_ISREG(inode->i_mode)) |
inode | 376 | fs/ext/inode.c | inode->i_op = &ext_file_inode_operations; |
inode | 377 | fs/ext/inode.c | else if (S_ISDIR(inode->i_mode)) |
inode | 378 | fs/ext/inode.c | inode->i_op = &ext_dir_inode_operations; |
inode | 379 | fs/ext/inode.c | else if (S_ISLNK(inode->i_mode)) |
inode | 380 | fs/ext/inode.c | inode->i_op = &ext_symlink_inode_operations; |
inode | 381 | fs/ext/inode.c | else if (S_ISCHR(inode->i_mode)) |
inode | 382 | fs/ext/inode.c | inode->i_op = &chrdev_inode_operations; |
inode | 383 | fs/ext/inode.c | else if (S_ISBLK(inode->i_mode)) |
inode | 384 | fs/ext/inode.c | inode->i_op = &blkdev_inode_operations; |
inode | 385 | fs/ext/inode.c | else if (S_ISFIFO(inode->i_mode)) |
inode | 386 | fs/ext/inode.c | init_fifo(inode); |
inode | 389 | fs/ext/inode.c | static struct buffer_head * ext_update_inode(struct inode * inode) |
inode | 395 | fs/ext/inode.c | block = 2 + (inode->i_ino-1)/EXT_INODES_PER_BLOCK; |
inode | 396 | fs/ext/inode.c | if (!(bh=bread(inode->i_dev, block, BLOCK_SIZE))) |
inode | 399 | fs/ext/inode.c | (inode->i_ino-1)%EXT_INODES_PER_BLOCK; |
inode | 400 | fs/ext/inode.c | raw_inode->i_mode = inode->i_mode; |
inode | 401 | fs/ext/inode.c | raw_inode->i_uid = inode->i_uid; |
inode | 402 | fs/ext/inode.c | raw_inode->i_gid = inode->i_gid; |
inode | 403 | fs/ext/inode.c | raw_inode->i_nlinks = inode->i_nlink; |
inode | 404 | fs/ext/inode.c | raw_inode->i_size = inode->i_size; |
inode | 405 | fs/ext/inode.c | raw_inode->i_time = inode->i_mtime; |
inode | 406 | fs/ext/inode.c | if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) |
inode | 407 | fs/ext/inode.c | raw_inode->i_zone[0] = inode->i_rdev; |
inode | 409 | fs/ext/inode.c | raw_inode->i_zone[block] = inode->u.ext_i.i_data[block]; |
inode | 411 | fs/ext/inode.c | inode->i_dirt=0; |
inode | 415 | fs/ext/inode.c | void ext_write_inode(struct inode * inode) |
inode | 418 | fs/ext/inode.c | bh = ext_update_inode (inode); |
inode | 422 | fs/ext/inode.c | int ext_sync_inode (struct inode *inode) |
inode | 427 | fs/ext/inode.c | bh = ext_update_inode(inode); |
inode | 435 | fs/ext/inode.c | inode->i_dev, inode->i_ino); |
inode | 60 | fs/ext/namei.c | if (!de || !de->inode || len > EXT_NAME_LEN) |
inode | 87 | fs/ext/namei.c | static struct buffer_head * ext_find_entry(struct inode * dir, |
inode | 157 | fs/ext/namei.c | int ext_lookup(struct inode * dir,const char * name, int len, |
inode | 158 | fs/ext/namei.c | struct inode ** result) |
inode | 175 | fs/ext/namei.c | ino = de->inode; |
inode | 195 | fs/ext/namei.c | static struct buffer_head * ext_add_entry(struct inode * dir, |
inode | 242 | fs/ext/namei.c | de->inode = 0; |
inode | 265 | fs/ext/namei.c | de->inode=0; |
inode | 282 | fs/ext/namei.c | if (!de->inode && de->rec_len >= rec_len) { |
inode | 290 | fs/ext/namei.c | de1->inode = 0; |
inode | 310 | fs/ext/namei.c | int ext_create(struct inode * dir,const char * name, int len, int mode, |
inode | 311 | fs/ext/namei.c | struct inode ** result) |
inode | 313 | fs/ext/namei.c | struct inode * inode; |
inode | 320 | fs/ext/namei.c | inode = ext_new_inode(dir); |
inode | 321 | fs/ext/namei.c | if (!inode) { |
inode | 325 | fs/ext/namei.c | inode->i_op = &ext_file_inode_operations; |
inode | 326 | fs/ext/namei.c | inode->i_mode = mode; |
inode | 327 | fs/ext/namei.c | inode->i_dirt = 1; |
inode | 330 | fs/ext/namei.c | inode->i_nlink--; |
inode | 331 | fs/ext/namei.c | inode->i_dirt = 1; |
inode | 332 | fs/ext/namei.c | iput(inode); |
inode | 336 | fs/ext/namei.c | de->inode = inode->i_ino; |
inode | 340 | fs/ext/namei.c | *result = inode; |
inode | 344 | fs/ext/namei.c | int ext_mknod(struct inode * dir, const char * name, int len, int mode, int rdev) |
inode | 346 | fs/ext/namei.c | struct inode * inode; |
inode | 358 | fs/ext/namei.c | inode = ext_new_inode(dir); |
inode | 359 | fs/ext/namei.c | if (!inode) { |
inode | 363 | fs/ext/namei.c | inode->i_uid = current->euid; |
inode | 364 | fs/ext/namei.c | inode->i_mode = mode; |
inode | 365 | fs/ext/namei.c | inode->i_op = NULL; |
inode | 366 | fs/ext/namei.c | if (S_ISREG(inode->i_mode)) |
inode | 367 | fs/ext/namei.c | inode->i_op = &ext_file_inode_operations; |
inode | 368 | fs/ext/namei.c | else if (S_ISDIR(inode->i_mode)) { |
inode | 369 | fs/ext/namei.c | inode->i_op = &ext_dir_inode_operations; |
inode | 371 | fs/ext/namei.c | inode->i_mode |= S_ISGID; |
inode | 373 | fs/ext/namei.c | else if (S_ISLNK(inode->i_mode)) |
inode | 374 | fs/ext/namei.c | inode->i_op = &ext_symlink_inode_operations; |
inode | 375 | fs/ext/namei.c | else if (S_ISCHR(inode->i_mode)) |
inode | 376 | fs/ext/namei.c | inode->i_op = &chrdev_inode_operations; |
inode | 377 | fs/ext/namei.c | else if (S_ISBLK(inode->i_mode)) |
inode | 378 | fs/ext/namei.c | inode->i_op = &blkdev_inode_operations; |
inode | 379 | fs/ext/namei.c | else if (S_ISFIFO(inode->i_mode)) |
inode | 380 | fs/ext/namei.c | init_fifo(inode); |
inode | 382 | fs/ext/namei.c | inode->i_rdev = rdev; |
inode | 384 | fs/ext/namei.c | inode->i_mtime = inode->i_atime = CURRENT_TIME; |
inode | 386 | fs/ext/namei.c | inode->i_dirt = 1; |
inode | 389 | fs/ext/namei.c | inode->i_nlink--; |
inode | 390 | fs/ext/namei.c | inode->i_dirt = 1; |
inode | 391 | fs/ext/namei.c | iput(inode); |
inode | 395 | fs/ext/namei.c | de->inode = inode->i_ino; |
inode | 399 | fs/ext/namei.c | iput(inode); |
inode | 403 | fs/ext/namei.c | int ext_mkdir(struct inode * dir, const char * name, int len, int mode) |
inode | 405 | fs/ext/namei.c | struct inode * inode; |
inode | 415 | fs/ext/namei.c | inode = ext_new_inode(dir); |
inode | 416 | fs/ext/namei.c | if (!inode) { |
inode | 420 | fs/ext/namei.c | inode->i_op = &ext_dir_inode_operations; |
inode | 421 | fs/ext/namei.c | inode->i_size = 2 * 16; /* Each entry is coded on 16 bytes for "." and ".." |
inode | 427 | fs/ext/namei.c | inode->i_mtime = inode->i_atime = CURRENT_TIME; |
inode | 429 | fs/ext/namei.c | dir_block = ext_bread(inode,0,1); |
inode | 432 | fs/ext/namei.c | inode->i_nlink--; |
inode | 433 | fs/ext/namei.c | inode->i_dirt = 1; |
inode | 434 | fs/ext/namei.c | iput(inode); |
inode | 438 | fs/ext/namei.c | de->inode=inode->i_ino; |
inode | 443 | fs/ext/namei.c | de->inode = dir->i_ino; |
inode | 447 | fs/ext/namei.c | inode->i_nlink = 2; |
inode | 450 | fs/ext/namei.c | inode->i_mode = S_IFDIR | (mode & 0777 & ~current->umask); |
inode | 452 | fs/ext/namei.c | inode->i_mode |= S_ISGID; |
inode | 453 | fs/ext/namei.c | inode->i_dirt = 1; |
inode | 457 | fs/ext/namei.c | inode->i_nlink=0; |
inode | 458 | fs/ext/namei.c | iput(inode); |
inode | 461 | fs/ext/namei.c | de->inode = inode->i_ino; |
inode | 466 | fs/ext/namei.c | iput(inode); |
inode | 474 | fs/ext/namei.c | static int empty_dir(struct inode * inode) |
inode | 480 | fs/ext/namei.c | if (inode->i_size < 2 * 12 || !(bh = ext_bread(inode,0,0))) { |
inode | 481 | fs/ext/namei.c | printk("warning - bad directory on dev %04x\n",inode->i_dev); |
inode | 486 | fs/ext/namei.c | if (de->inode != inode->i_ino || !de1->inode || |
inode | 488 | fs/ext/namei.c | printk("warning - bad directory on dev %04x\n",inode->i_dev); |
inode | 493 | fs/ext/namei.c | while (offset < inode->i_size ) { |
inode | 496 | fs/ext/namei.c | bh = ext_bread(inode, offset >> BLOCK_SIZE_BITS,1); |
inode | 507 | fs/ext/namei.c | inode->i_dev, inode->i_ino, offset, de->rec_len, de->name_len); |
inode | 511 | fs/ext/namei.c | if (de->inode) { |
inode | 525 | fs/ext/namei.c | if (nde && !nde->inode) |
inode | 527 | fs/ext/namei.c | if (pde && !pde->inode) |
inode | 531 | fs/ext/namei.c | int ext_rmdir(struct inode * dir, const char * name, int len) |
inode | 534 | fs/ext/namei.c | struct inode * inode; |
inode | 538 | fs/ext/namei.c | inode = NULL; |
inode | 544 | fs/ext/namei.c | if (!(inode = iget(dir->i_sb, de->inode))) |
inode | 547 | fs/ext/namei.c | inode->i_uid != current->euid) |
inode | 549 | fs/ext/namei.c | if (inode->i_dev != dir->i_dev) |
inode | 551 | fs/ext/namei.c | if (inode == dir) /* we may not delete ".", but "../dir" is ok */ |
inode | 553 | fs/ext/namei.c | if (!S_ISDIR(inode->i_mode)) { |
inode | 557 | fs/ext/namei.c | if (!empty_dir(inode)) { |
inode | 561 | fs/ext/namei.c | if (inode->i_count > 1) { |
inode | 565 | fs/ext/namei.c | if (inode->i_nlink != 2) |
inode | 566 | fs/ext/namei.c | printk("empty directory has nlink!=2 (%d)\n",inode->i_nlink); |
inode | 567 | fs/ext/namei.c | de->inode = 0; |
inode | 571 | fs/ext/namei.c | inode->i_nlink=0; |
inode | 572 | fs/ext/namei.c | inode->i_dirt=1; |
inode | 574 | fs/ext/namei.c | inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME; |
inode | 579 | fs/ext/namei.c | iput(inode); |
inode | 584 | fs/ext/namei.c | int ext_unlink(struct inode * dir, const char * name, int len) |
inode | 587 | fs/ext/namei.c | struct inode * inode; |
inode | 592 | fs/ext/namei.c | inode = NULL; |
inode | 596 | fs/ext/namei.c | if (!(inode = iget(dir->i_sb, de->inode))) |
inode | 600 | fs/ext/namei.c | current->euid != inode->i_uid && |
inode | 603 | fs/ext/namei.c | if (S_ISDIR(inode->i_mode)) |
inode | 605 | fs/ext/namei.c | if (!inode->i_nlink) { |
inode | 607 | fs/ext/namei.c | inode->i_dev,inode->i_ino,inode->i_nlink); |
inode | 608 | fs/ext/namei.c | inode->i_nlink=1; |
inode | 610 | fs/ext/namei.c | de->inode = 0; |
inode | 614 | fs/ext/namei.c | inode->i_nlink--; |
inode | 615 | fs/ext/namei.c | inode->i_dirt = 1; |
inode | 616 | fs/ext/namei.c | inode->i_ctime = CURRENT_TIME; |
inode | 617 | fs/ext/namei.c | dir->i_ctime = dir->i_mtime = inode->i_ctime; |
inode | 622 | fs/ext/namei.c | iput(inode); |
inode | 627 | fs/ext/namei.c | int ext_symlink(struct inode * dir, const char * name, int len, const char * symname) |
inode | 630 | fs/ext/namei.c | struct inode * inode = NULL; |
inode | 635 | fs/ext/namei.c | if (!(inode = ext_new_inode(dir))) { |
inode | 639 | fs/ext/namei.c | inode->i_mode = S_IFLNK | 0777; |
inode | 640 | fs/ext/namei.c | inode->i_op = &ext_symlink_inode_operations; |
inode | 641 | fs/ext/namei.c | name_block = ext_bread(inode,0,1); |
inode | 644 | fs/ext/namei.c | inode->i_nlink--; |
inode | 645 | fs/ext/namei.c | inode->i_dirt = 1; |
inode | 646 | fs/ext/namei.c | iput(inode); |
inode | 655 | fs/ext/namei.c | inode->i_size = i; |
inode | 656 | fs/ext/namei.c | inode->i_dirt = 1; |
inode | 659 | fs/ext/namei.c | inode->i_nlink--; |
inode | 660 | fs/ext/namei.c | inode->i_dirt = 1; |
inode | 661 | fs/ext/namei.c | iput(inode); |
inode | 668 | fs/ext/namei.c | inode->i_nlink--; |
inode | 669 | fs/ext/namei.c | inode->i_dirt = 1; |
inode | 670 | fs/ext/namei.c | iput(inode); |
inode | 674 | fs/ext/namei.c | de->inode = inode->i_ino; |
inode | 678 | fs/ext/namei.c | iput(inode); |
inode | 682 | fs/ext/namei.c | int ext_link(struct inode * oldinode, struct inode * dir, const char * name, int len) |
inode | 710 | fs/ext/namei.c | de->inode = oldinode->i_ino; |
inode | 721 | fs/ext/namei.c | static int subdir(struct inode * new_inode, struct inode * old_inode) |
inode | 747 | fs/ext/namei.c | ((struct ext_dir_entry *) buffer)->rec_len))->inode |
inode | 763 | fs/ext/namei.c | static int do_ext_rename(struct inode * old_dir, const char * old_name, int old_len, |
inode | 764 | fs/ext/namei.c | struct inode * new_dir, const char * new_name, int new_len) |
inode | 766 | fs/ext/namei.c | struct inode * old_inode, * new_inode; |
inode | 787 | fs/ext/namei.c | old_inode = __iget(old_dir->i_sb, old_de->inode,0); /* don't cross mnt-points */ |
inode | 797 | fs/ext/namei.c | new_inode = __iget(new_dir->i_sb, new_de->inode,0); /* don't cross mnt-points */ |
inode | 839 | fs/ext/namei.c | if (new_inode && (new_de->inode != new_inode->i_ino)) |
inode | 841 | fs/ext/namei.c | if (new_de->inode && !new_inode) |
inode | 843 | fs/ext/namei.c | if (old_de->inode != old_inode->i_ino) |
inode | 846 | fs/ext/namei.c | old_de->inode = 0; |
inode | 848 | fs/ext/namei.c | new_de->inode = old_inode->i_ino; |
inode | 885 | fs/ext/namei.c | int ext_rename(struct inode * old_dir, const char * old_name, int old_len, |
inode | 886 | fs/ext/namei.c | struct inode * new_dir, const char * new_name, int new_len) |
inode | 23 | fs/ext/symlink.c | static int ext_readlink(struct inode *, char *, int); |
inode | 24 | fs/ext/symlink.c | static int ext_follow_link(struct inode *, struct inode *, int, int, struct inode **); |
inode | 47 | fs/ext/symlink.c | static int ext_follow_link(struct inode * dir, struct inode * inode, |
inode | 48 | fs/ext/symlink.c | int flag, int mode, struct inode ** res_inode) |
inode | 58 | fs/ext/symlink.c | if (!inode) { |
inode | 62 | fs/ext/symlink.c | if (!S_ISLNK(inode->i_mode)) { |
inode | 64 | fs/ext/symlink.c | *res_inode = inode; |
inode | 69 | fs/ext/symlink.c | iput(inode); |
inode | 72 | fs/ext/symlink.c | if (!(bh = ext_bread(inode, 0, 0))) { |
inode | 73 | fs/ext/symlink.c | iput(inode); |
inode | 77 | fs/ext/symlink.c | iput(inode); |
inode | 85 | fs/ext/symlink.c | static int ext_readlink(struct inode * inode, char * buffer, int buflen) |
inode | 91 | fs/ext/symlink.c | if (!S_ISLNK(inode->i_mode)) { |
inode | 92 | fs/ext/symlink.c | iput(inode); |
inode | 97 | fs/ext/symlink.c | bh = ext_bread(inode, 0, 0); |
inode | 98 | fs/ext/symlink.c | iput(inode); |
inode | 33 | fs/ext/truncate.c | static int trunc_direct(struct inode * inode) |
inode | 39 | fs/ext/truncate.c | #define DIRECT_BLOCK ((inode->i_size + 1023) >> 10) |
inode | 43 | fs/ext/truncate.c | p = inode->u.ext_i.i_data+i; |
inode | 46 | fs/ext/truncate.c | bh = getblk(inode->i_dev,tmp,BLOCK_SIZE); |
inode | 57 | fs/ext/truncate.c | inode->i_dirt = 1; |
inode | 59 | fs/ext/truncate.c | ext_free_block(inode->i_sb,tmp); |
inode | 64 | fs/ext/truncate.c | static int trunc_indirect(struct inode * inode, int offset, unsigned long * p) |
inode | 76 | fs/ext/truncate.c | ind_bh = bread(inode->i_dev, tmp, BLOCK_SIZE); |
inode | 95 | fs/ext/truncate.c | bh = getblk(inode->i_dev,tmp,BLOCK_SIZE); |
inode | 108 | fs/ext/truncate.c | ext_free_block(inode->i_sb,tmp); |
inode | 120 | fs/ext/truncate.c | inode->i_dirt = 1; |
inode | 121 | fs/ext/truncate.c | ext_free_block(inode->i_sb,tmp); |
inode | 127 | fs/ext/truncate.c | static int trunc_dindirect(struct inode * inode, int offset, unsigned long * p) |
inode | 138 | fs/ext/truncate.c | dind_bh = bread(inode->i_dev, tmp, BLOCK_SIZE); |
inode | 157 | fs/ext/truncate.c | retry |= trunc_indirect(inode,offset+(i<<8),dind); |
inode | 170 | fs/ext/truncate.c | inode->i_dirt = 1; |
inode | 171 | fs/ext/truncate.c | ext_free_block(inode->i_sb,tmp); |
inode | 177 | fs/ext/truncate.c | static int trunc_tindirect(struct inode * inode) |
inode | 185 | fs/ext/truncate.c | p = inode->u.ext_i.i_data+11; |
inode | 188 | fs/ext/truncate.c | tind_bh = bread(inode->i_dev, tmp, BLOCK_SIZE); |
inode | 204 | fs/ext/truncate.c | retry |= trunc_dindirect(inode,9+256+256*256+(i<<16),tind); |
inode | 217 | fs/ext/truncate.c | inode->i_dirt = 1; |
inode | 218 | fs/ext/truncate.c | ext_free_block(inode->i_sb,tmp); |
inode | 224 | fs/ext/truncate.c | void ext_truncate(struct inode * inode) |
inode | 228 | fs/ext/truncate.c | if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || |
inode | 229 | fs/ext/truncate.c | S_ISLNK(inode->i_mode))) |
inode | 232 | fs/ext/truncate.c | retry = trunc_direct(inode); |
inode | 233 | fs/ext/truncate.c | retry |= trunc_indirect(inode,9,inode->u.ext_i.i_data+9); |
inode | 234 | fs/ext/truncate.c | retry |= trunc_dindirect(inode,9+256,inode->u.ext_i.i_data+10); |
inode | 235 | fs/ext/truncate.c | retry |= trunc_tindirect(inode); |
inode | 241 | fs/ext/truncate.c | inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
inode | 242 | fs/ext/truncate.c | inode->i_dirt = 1; |
inode | 250 | fs/ext/truncate.c | void ext_release(struct inode * inode, struct file * filp) |
inode | 24 | fs/ext2/acl.c | int ext2_permission (struct inode * inode, int mask) |
inode | 26 | fs/ext2/acl.c | unsigned short mode = inode->i_mode; |
inode | 32 | fs/ext2/acl.c | else if (current->euid == inode->i_uid) |
inode | 34 | fs/ext2/acl.c | else if (in_group_p (inode->i_gid)) |
inode | 24 | fs/ext2/dir.c | static int ext2_dir_read (struct inode * inode, struct file * filp, |
inode | 31 | fs/ext2/dir.c | /* static */ int ext2_file_read (struct inode *, struct file *, char *, int); |
inode | 32 | fs/ext2/dir.c | static int ext2_readdir (struct inode *, struct file *, struct dirent *, int); |
inode | 68 | fs/ext2/dir.c | int ext2_check_dir_entry (char * function, struct inode * dir, |
inode | 87 | fs/ext2/dir.c | error_msg, offset, de->inode, de->rec_len, |
inode | 92 | fs/ext2/dir.c | static int ext2_readdir (struct inode * inode, struct file * filp, |
inode | 102 | fs/ext2/dir.c | if (!inode || !S_ISDIR(inode->i_mode)) |
inode | 104 | fs/ext2/dir.c | sb = inode->i_sb; |
inode | 105 | fs/ext2/dir.c | while (filp->f_pos < inode->i_size) { |
inode | 107 | fs/ext2/dir.c | bh = ext2_bread (inode, (filp->f_pos) >> EXT2_BLOCK_SIZE_BITS(sb), |
inode | 114 | fs/ext2/dir.c | while (offset < sb->s_blocksize && filp->f_pos < inode->i_size) { |
inode | 115 | fs/ext2/dir.c | if (! ext2_check_dir_entry ("ext2_readdir", inode, de, |
inode | 122 | fs/ext2/dir.c | if (de->inode) { |
inode | 125 | fs/ext2/dir.c | put_fs_long (de->inode, &dirent->d_ino); |
inode | 129 | fs/ext2/dir.c | ext2_dcache_add (inode->i_dev, inode->i_ino, |
inode | 131 | fs/ext2/dir.c | de->inode); |
inode | 135 | fs/ext2/dir.c | if (!IS_RDONLY(inode)) { |
inode | 136 | fs/ext2/dir.c | inode->i_atime = CURRENT_TIME; |
inode | 137 | fs/ext2/dir.c | inode->i_dirt = 1; |
inode | 146 | fs/ext2/dir.c | if (!IS_RDONLY(inode)) { |
inode | 147 | fs/ext2/dir.c | inode->i_atime = CURRENT_TIME; |
inode | 148 | fs/ext2/dir.c | inode->i_dirt = 1; |
inode | 35 | fs/ext2/file.c | /* static */ int ext2_file_read (struct inode *, struct file *, char *, int); |
inode | 36 | fs/ext2/file.c | static int ext2_file_write (struct inode *, struct file *, char *, int); |
inode | 73 | fs/ext2/file.c | /* static */ int ext2_file_read (struct inode * inode, struct file * filp, |
inode | 86 | fs/ext2/file.c | if (!inode) { |
inode | 90 | fs/ext2/file.c | sb = inode->i_sb; |
inode | 91 | fs/ext2/file.c | if (!S_ISREG(inode->i_mode) && !S_ISDIR(inode->i_mode)) { |
inode | 93 | fs/ext2/file.c | inode->i_mode); |
inode | 97 | fs/ext2/file.c | size = inode->i_size; |
inode | 113 | fs/ext2/file.c | blocks += read_ahead[MAJOR(inode->i_dev)] >> |
inode | 134 | fs/ext2/file.c | *bhb = ext2_getblk (inode, block++, 0, &err); |
inode | 198 | fs/ext2/file.c | if (!IS_RDONLY(inode)) { |
inode | 199 | fs/ext2/file.c | inode->i_atime = CURRENT_TIME; |
inode | 200 | fs/ext2/file.c | inode->i_dirt = 1; |
inode | 205 | fs/ext2/file.c | static int ext2_file_write (struct inode * inode, struct file * filp, |
inode | 215 | fs/ext2/file.c | if (!inode) { |
inode | 219 | fs/ext2/file.c | sb = inode->i_sb; |
inode | 220 | fs/ext2/file.c | if (!S_ISREG(inode->i_mode)) { |
inode | 222 | fs/ext2/file.c | inode->i_mode); |
inode | 230 | fs/ext2/file.c | pos = inode->i_size; |
inode | 235 | fs/ext2/file.c | bh = ext2_getblk (inode, pos / sb->s_blocksize, 1, &err); |
inode | 256 | fs/ext2/file.c | if (pos > inode->i_size) { |
inode | 257 | fs/ext2/file.c | inode->i_size = pos; |
inode | 258 | fs/ext2/file.c | inode->i_dirt = 1; |
inode | 267 | fs/ext2/file.c | inode->i_ctime = inode->i_mtime = CURRENT_TIME; |
inode | 269 | fs/ext2/file.c | inode->i_dirt = 1; |
inode | 25 | fs/ext2/fsync.c | #define blocksize (EXT2_BLOCK_SIZE(inode->i_sb)) |
inode | 26 | fs/ext2/fsync.c | #define addr_per_block (EXT2_ADDR_PER_BLOCK(inode->i_sb)) |
inode | 28 | fs/ext2/fsync.c | static int sync_block (struct inode * inode, unsigned long * block, int wait) |
inode | 36 | fs/ext2/fsync.c | bh = get_hash_table (inode->i_dev, *block, blocksize); |
inode | 56 | fs/ext2/fsync.c | static int sync_iblock (struct inode * inode, unsigned long * iblock, |
inode | 65 | fs/ext2/fsync.c | rc = sync_block (inode, iblock, wait); |
inode | 68 | fs/ext2/fsync.c | *bh = bread (inode->i_dev, tmp, blocksize); |
inode | 80 | fs/ext2/fsync.c | static int sync_direct (struct inode * inode, int wait) |
inode | 86 | fs/ext2/fsync.c | rc = sync_block (inode, inode->u.ext2_i.i_data + i, wait); |
inode | 95 | fs/ext2/fsync.c | static int sync_indirect (struct inode * inode, unsigned long * iblock, |
inode | 102 | fs/ext2/fsync.c | rc = sync_iblock (inode, iblock, &ind_bh, wait); |
inode | 107 | fs/ext2/fsync.c | rc = sync_block (inode, |
inode | 119 | fs/ext2/fsync.c | static int sync_dindirect (struct inode * inode, unsigned long * diblock, |
inode | 126 | fs/ext2/fsync.c | rc = sync_iblock (inode, diblock, &dind_bh, wait); |
inode | 131 | fs/ext2/fsync.c | rc = sync_indirect (inode, |
inode | 143 | fs/ext2/fsync.c | static int sync_tindirect (struct inode * inode, unsigned long * tiblock, |
inode | 150 | fs/ext2/fsync.c | rc = sync_iblock (inode, tiblock, &tind_bh, wait); |
inode | 155 | fs/ext2/fsync.c | rc = sync_dindirect (inode, |
inode | 167 | fs/ext2/fsync.c | int ext2_sync_file (struct inode * inode, struct file * file) |
inode | 171 | fs/ext2/fsync.c | if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || |
inode | 172 | fs/ext2/fsync.c | S_ISLNK(inode->i_mode))) |
inode | 175 | fs/ext2/fsync.c | if (S_ISLNK(inode->i_mode) && !(inode->i_blocks)) |
inode | 180 | fs/ext2/fsync.c | err |= sync_direct (inode, wait); |
inode | 181 | fs/ext2/fsync.c | err |= sync_indirect (inode, |
inode | 182 | fs/ext2/fsync.c | inode->u.ext2_i.i_data+EXT2_IND_BLOCK, |
inode | 184 | fs/ext2/fsync.c | err |= sync_dindirect (inode, |
inode | 185 | fs/ext2/fsync.c | inode->u.ext2_i.i_data+EXT2_DIND_BLOCK, |
inode | 187 | fs/ext2/fsync.c | err |= sync_tindirect (inode, |
inode | 188 | fs/ext2/fsync.c | inode->u.ext2_i.i_data+EXT2_TIND_BLOCK, |
inode | 192 | fs/ext2/fsync.c | err |= ext2_sync_inode (inode); |
inode | 164 | fs/ext2/ialloc.c | static void set_inode_dtime (struct inode * inode, |
inode | 171 | fs/ext2/ialloc.c | inode_block = gdp[desc].bg_inode_table + (((inode->i_ino - 1) % |
inode | 172 | fs/ext2/ialloc.c | EXT2_INODES_PER_GROUP(inode->i_sb)) / |
inode | 173 | fs/ext2/ialloc.c | EXT2_INODES_PER_BLOCK(inode->i_sb)); |
inode | 174 | fs/ext2/ialloc.c | bh = bread (inode->i_sb->s_dev, inode_block, inode->i_sb->s_blocksize); |
inode | 176 | fs/ext2/ialloc.c | ext2_panic (inode->i_sb, "set_inode_dtime", |
inode | 179 | fs/ext2/ialloc.c | inode->i_ino, inode_block); |
inode | 181 | fs/ext2/ialloc.c | (((inode->i_ino - 1) % |
inode | 182 | fs/ext2/ialloc.c | EXT2_INODES_PER_GROUP(inode->i_sb)) % |
inode | 183 | fs/ext2/ialloc.c | EXT2_INODES_PER_BLOCK(inode->i_sb)); |
inode | 187 | fs/ext2/ialloc.c | if (IS_SYNC(inode)) { |
inode | 194 | fs/ext2/ialloc.c | void ext2_free_inode (struct inode * inode) |
inode | 207 | fs/ext2/ialloc.c | if (!inode) |
inode | 209 | fs/ext2/ialloc.c | if (!inode->i_dev) { |
inode | 213 | fs/ext2/ialloc.c | if (inode->i_count > 1) { |
inode | 215 | fs/ext2/ialloc.c | inode->i_count); |
inode | 218 | fs/ext2/ialloc.c | if (inode->i_nlink) { |
inode | 220 | fs/ext2/ialloc.c | inode->i_nlink); |
inode | 223 | fs/ext2/ialloc.c | if (!inode->i_sb) { |
inode | 228 | fs/ext2/ialloc.c | ext2_debug ("freeing inode %lu\n", inode->i_ino); |
inode | 230 | fs/ext2/ialloc.c | sb = inode->i_sb; |
inode | 232 | fs/ext2/ialloc.c | if (inode->i_ino < EXT2_FIRST_INO || |
inode | 233 | fs/ext2/ialloc.c | inode->i_ino > sb->u.ext2_sb.s_es->s_inodes_count) { |
inode | 240 | fs/ext2/ialloc.c | block_group = (inode->i_ino - 1) / EXT2_INODES_PER_GROUP(sb); |
inode | 241 | fs/ext2/ialloc.c | bit = (inode->i_ino - 1) % EXT2_INODES_PER_GROUP(sb); |
inode | 249 | fs/ext2/ialloc.c | "bit already cleared for inode %lu", inode->i_ino); |
inode | 260 | fs/ext2/ialloc.c | if (S_ISDIR(inode->i_mode)) |
inode | 265 | fs/ext2/ialloc.c | set_inode_dtime (inode, gdp, desc); |
inode | 274 | fs/ext2/ialloc.c | clear_inode (inode); |
inode | 283 | fs/ext2/ialloc.c | static void inc_inode_version (struct inode * inode, |
inode | 291 | fs/ext2/ialloc.c | inode_block = gdp->bg_inode_table + (((inode->i_ino - 1) % |
inode | 292 | fs/ext2/ialloc.c | EXT2_INODES_PER_GROUP(inode->i_sb)) / |
inode | 293 | fs/ext2/ialloc.c | EXT2_INODES_PER_BLOCK(inode->i_sb)); |
inode | 294 | fs/ext2/ialloc.c | bh = bread (inode->i_sb->s_dev, inode_block, inode->i_sb->s_blocksize); |
inode | 296 | fs/ext2/ialloc.c | ext2_error (inode->i_sb, "inc_inode_version", |
inode | 299 | fs/ext2/ialloc.c | inode->i_ino, inode_block); |
inode | 300 | fs/ext2/ialloc.c | inode->u.ext2_i.i_version = 1; |
inode | 304 | fs/ext2/ialloc.c | (((inode->i_ino - 1) % |
inode | 305 | fs/ext2/ialloc.c | EXT2_INODES_PER_GROUP(inode->i_sb)) % |
inode | 306 | fs/ext2/ialloc.c | EXT2_INODES_PER_BLOCK(inode->i_sb)); |
inode | 308 | fs/ext2/ialloc.c | inode->u.ext2_i.i_version = raw_inode->i_version; |
inode | 339 | fs/ext2/ialloc.c | struct inode * ext2_new_inode (const struct inode * dir, int mode) |
inode | 344 | fs/ext2/ialloc.c | struct inode * inode; |
inode | 349 | fs/ext2/ialloc.c | if (!dir || !(inode = get_empty_inode ())) |
inode | 352 | fs/ext2/ialloc.c | inode->i_sb = sb; |
inode | 353 | fs/ext2/ialloc.c | inode->i_flags = sb->s_flags; |
inode | 426 | fs/ext2/ialloc.c | iput(inode); |
inode | 455 | fs/ext2/ialloc.c | iput (inode); |
inode | 465 | fs/ext2/ialloc.c | inode->i_mode = mode; |
inode | 466 | fs/ext2/ialloc.c | inode->i_sb = sb; |
inode | 467 | fs/ext2/ialloc.c | inode->i_count = 1; |
inode | 468 | fs/ext2/ialloc.c | inode->i_nlink = 1; |
inode | 469 | fs/ext2/ialloc.c | inode->i_dev = sb->s_dev; |
inode | 470 | fs/ext2/ialloc.c | inode->i_uid = current->euid; |
inode | 471 | fs/ext2/ialloc.c | inode->i_gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->egid; |
inode | 472 | fs/ext2/ialloc.c | inode->i_dirt = 1; |
inode | 473 | fs/ext2/ialloc.c | inode->i_ino = j; |
inode | 474 | fs/ext2/ialloc.c | inode->i_blksize = sb->s_blocksize; |
inode | 475 | fs/ext2/ialloc.c | inode->i_blocks = 0; |
inode | 476 | fs/ext2/ialloc.c | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; |
inode | 477 | fs/ext2/ialloc.c | inode->u.ext2_i.i_flags = dir->u.ext2_i.i_flags; |
inode | 478 | fs/ext2/ialloc.c | inode->u.ext2_i.i_faddr = 0; |
inode | 479 | fs/ext2/ialloc.c | inode->u.ext2_i.i_frag = 0; |
inode | 480 | fs/ext2/ialloc.c | inode->u.ext2_i.i_fsize = 0; |
inode | 481 | fs/ext2/ialloc.c | inode->u.ext2_i.i_file_acl = 0; |
inode | 482 | fs/ext2/ialloc.c | inode->u.ext2_i.i_dir_acl = 0; |
inode | 483 | fs/ext2/ialloc.c | inode->u.ext2_i.i_dtime = 0; |
inode | 484 | fs/ext2/ialloc.c | inode->u.ext2_i.i_block_group = i; |
inode | 485 | fs/ext2/ialloc.c | inode->i_op = NULL; |
inode | 486 | fs/ext2/ialloc.c | if (inode->u.ext2_i.i_flags & EXT2_SYNC_FL) |
inode | 487 | fs/ext2/ialloc.c | inode->i_flags |= MS_SYNC; |
inode | 488 | fs/ext2/ialloc.c | insert_inode_hash(inode); |
inode | 489 | fs/ext2/ialloc.c | inc_inode_version (inode, gdp, mode); |
inode | 491 | fs/ext2/ialloc.c | ext2_debug ("allocating inode %lu\n", inode->i_ino); |
inode | 494 | fs/ext2/ialloc.c | return inode; |
inode | 27 | fs/ext2/inode.c | void ext2_put_inode (struct inode * inode) |
inode | 29 | fs/ext2/inode.c | if (inode->i_nlink || inode->i_ino == EXT2_ACL_IDX_INO || |
inode | 30 | fs/ext2/inode.c | inode->i_ino == EXT2_ACL_DATA_INO) |
inode | 32 | fs/ext2/inode.c | inode->i_size = 0; |
inode | 33 | fs/ext2/inode.c | if (inode->i_blocks) |
inode | 34 | fs/ext2/inode.c | ext2_truncate (inode); |
inode | 35 | fs/ext2/inode.c | ext2_free_inode (inode); |
inode | 38 | fs/ext2/inode.c | #define inode_bmap(inode, nr) ((inode)->u.ext2_i.i_data[(nr)]) |
inode | 51 | fs/ext2/inode.c | int ext2_bmap (struct inode * inode, int block) |
inode | 54 | fs/ext2/inode.c | int addr_per_block = EXT2_ADDR_PER_BLOCK(inode->i_sb); |
inode | 57 | fs/ext2/inode.c | ext2_warning (inode->i_sb, "ext2_bmap", "block < 0"); |
inode | 63 | fs/ext2/inode.c | ext2_warning (inode->i_sb, "ext2_bmap", "block > big"); |
inode | 67 | fs/ext2/inode.c | return inode_bmap (inode, block); |
inode | 70 | fs/ext2/inode.c | i = inode_bmap (inode, EXT2_IND_BLOCK); |
inode | 73 | fs/ext2/inode.c | return block_bmap (bread (inode->i_dev, i, |
inode | 74 | fs/ext2/inode.c | inode->i_sb->s_blocksize), block); |
inode | 78 | fs/ext2/inode.c | i = inode_bmap (inode, EXT2_DIND_BLOCK); |
inode | 81 | fs/ext2/inode.c | i = block_bmap (bread (inode->i_dev, i, |
inode | 82 | fs/ext2/inode.c | inode->i_sb->s_blocksize), |
inode | 86 | fs/ext2/inode.c | return block_bmap (bread (inode->i_dev, i, |
inode | 87 | fs/ext2/inode.c | inode->i_sb->s_blocksize), |
inode | 91 | fs/ext2/inode.c | i = inode_bmap (inode, EXT2_TIND_BLOCK); |
inode | 94 | fs/ext2/inode.c | i = block_bmap (bread (inode->i_dev, i, inode->i_sb->s_blocksize), |
inode | 98 | fs/ext2/inode.c | i = block_bmap (bread (inode->i_dev, i, inode->i_sb->s_blocksize), |
inode | 102 | fs/ext2/inode.c | return block_bmap (bread (inode->i_dev, i, inode->i_sb->s_blocksize), |
inode | 106 | fs/ext2/inode.c | static struct buffer_head * inode_getblk (struct inode * inode, int nr, |
inode | 112 | fs/ext2/inode.c | int blocks = inode->i_sb->s_blocksize / 512; |
inode | 114 | fs/ext2/inode.c | p = inode->u.ext2_i.i_data + nr; |
inode | 118 | fs/ext2/inode.c | result = getblk (inode->i_dev, tmp, inode->i_sb->s_blocksize); |
inode | 126 | fs/ext2/inode.c | EXT2_BLOCK_SIZE_BITS(inode->i_sb))) { |
inode | 130 | fs/ext2/inode.c | if (inode->u.ext2_i.i_next_alloc_block == new_block) |
inode | 131 | fs/ext2/inode.c | goal = inode->u.ext2_i.i_next_alloc_goal; |
inode | 137 | fs/ext2/inode.c | if (inode->u.ext2_i.i_data[tmp]) { |
inode | 138 | fs/ext2/inode.c | goal = inode->u.ext2_i.i_data[tmp]; |
inode | 143 | fs/ext2/inode.c | goal = (inode->u.ext2_i.i_block_group * |
inode | 144 | fs/ext2/inode.c | EXT2_BLOCKS_PER_GROUP(inode->i_sb)) + |
inode | 145 | fs/ext2/inode.c | inode->i_sb->u.ext2_sb.s_es->s_first_data_block; |
inode | 150 | fs/ext2/inode.c | tmp = ext2_new_block (inode->i_sb, goal); |
inode | 153 | fs/ext2/inode.c | result = getblk (inode->i_dev, tmp, inode->i_sb->s_blocksize); |
inode | 155 | fs/ext2/inode.c | ext2_free_block (inode->i_sb, tmp); |
inode | 160 | fs/ext2/inode.c | inode->u.ext2_i.i_next_alloc_block = new_block; |
inode | 161 | fs/ext2/inode.c | inode->u.ext2_i.i_next_alloc_goal = tmp; |
inode | 162 | fs/ext2/inode.c | inode->i_ctime = CURRENT_TIME; |
inode | 163 | fs/ext2/inode.c | inode->i_blocks += blocks; |
inode | 164 | fs/ext2/inode.c | if (IS_SYNC(inode)) |
inode | 165 | fs/ext2/inode.c | ext2_sync_inode (inode); |
inode | 167 | fs/ext2/inode.c | inode->i_dirt = 1; |
inode | 171 | fs/ext2/inode.c | static struct buffer_head * block_getblk (struct inode * inode, |
inode | 179 | fs/ext2/inode.c | int blocks = inode->i_sb->s_blocksize / 512; |
inode | 205 | fs/ext2/inode.c | EXT2_BLOCK_SIZE_BITS(inode->i_sb))) { |
inode | 210 | fs/ext2/inode.c | if (inode->u.ext2_i.i_next_alloc_block == new_block) |
inode | 211 | fs/ext2/inode.c | goal = inode->u.ext2_i.i_next_alloc_goal; |
inode | 222 | fs/ext2/inode.c | tmp = ext2_new_block (inode->i_sb, goal); |
inode | 229 | fs/ext2/inode.c | ext2_free_block (inode->i_sb, tmp); |
inode | 235 | fs/ext2/inode.c | if (IS_SYNC(inode)) { |
inode | 239 | fs/ext2/inode.c | inode->i_ctime = CURRENT_TIME; |
inode | 240 | fs/ext2/inode.c | inode->i_blocks += blocks; |
inode | 241 | fs/ext2/inode.c | inode->i_dirt = 1; |
inode | 242 | fs/ext2/inode.c | inode->u.ext2_i.i_next_alloc_block = new_block; |
inode | 243 | fs/ext2/inode.c | inode->u.ext2_i.i_next_alloc_goal = tmp; |
inode | 248 | fs/ext2/inode.c | struct buffer_head * ext2_getblk (struct inode * inode, long block, |
inode | 253 | fs/ext2/inode.c | unsigned long addr_per_block = EXT2_ADDR_PER_BLOCK(inode->i_sb); |
inode | 257 | fs/ext2/inode.c | ext2_warning (inode->i_sb, "ext2_getblk", "block < 0"); |
inode | 263 | fs/ext2/inode.c | ext2_warning (inode->i_sb, "ext2_getblk", "block > big"); |
inode | 271 | fs/ext2/inode.c | inode->u.ext2_i.i_next_alloc_block, |
inode | 272 | fs/ext2/inode.c | inode->u.ext2_i.i_next_alloc_goal); |
inode | 274 | fs/ext2/inode.c | if (block == inode->u.ext2_i.i_next_alloc_block + 1) { |
inode | 275 | fs/ext2/inode.c | inode->u.ext2_i.i_next_alloc_block++; |
inode | 276 | fs/ext2/inode.c | inode->u.ext2_i.i_next_alloc_goal++; |
inode | 282 | fs/ext2/inode.c | return inode_getblk (inode, block, create, b, err); |
inode | 285 | fs/ext2/inode.c | bh = inode_getblk (inode, EXT2_IND_BLOCK, create, b, err); |
inode | 286 | fs/ext2/inode.c | return block_getblk (inode, bh, block, create, |
inode | 287 | fs/ext2/inode.c | inode->i_sb->s_blocksize, b, err); |
inode | 291 | fs/ext2/inode.c | bh = inode_getblk (inode, EXT2_DIND_BLOCK, create, b, err); |
inode | 292 | fs/ext2/inode.c | bh = block_getblk (inode, bh, block / addr_per_block, create, |
inode | 293 | fs/ext2/inode.c | inode->i_sb->s_blocksize, b, err); |
inode | 294 | fs/ext2/inode.c | return block_getblk (inode, bh, block & (addr_per_block - 1), |
inode | 295 | fs/ext2/inode.c | create, inode->i_sb->s_blocksize, b, err); |
inode | 298 | fs/ext2/inode.c | bh = inode_getblk (inode, EXT2_TIND_BLOCK, create, b, err); |
inode | 299 | fs/ext2/inode.c | bh = block_getblk (inode, bh, block/(addr_per_block * addr_per_block), |
inode | 300 | fs/ext2/inode.c | create, inode->i_sb->s_blocksize, b, err); |
inode | 301 | fs/ext2/inode.c | bh = block_getblk (inode, bh, (block/addr_per_block) & (addr_per_block - 1), |
inode | 302 | fs/ext2/inode.c | create, inode->i_sb->s_blocksize, b, err); |
inode | 303 | fs/ext2/inode.c | return block_getblk (inode, bh, block & (addr_per_block - 1), create, |
inode | 304 | fs/ext2/inode.c | inode->i_sb->s_blocksize, b, err); |
inode | 307 | fs/ext2/inode.c | struct buffer_head * ext2_bread (struct inode * inode, int block, |
inode | 312 | fs/ext2/inode.c | bh = ext2_getblk (inode, block, create, err); |
inode | 324 | fs/ext2/inode.c | void ext2_read_inode (struct inode * inode) |
inode | 334 | fs/ext2/inode.c | if ((inode->i_ino != EXT2_ROOT_INO && inode->i_ino != EXT2_ACL_IDX_INO && |
inode | 335 | fs/ext2/inode.c | inode->i_ino != EXT2_ACL_DATA_INO && inode->i_ino < EXT2_FIRST_INO) || |
inode | 336 | fs/ext2/inode.c | inode->i_ino > inode->i_sb->u.ext2_sb.s_es->s_inodes_count) { |
inode | 337 | fs/ext2/inode.c | ext2_error (inode->i_sb, "ext2_read_inode", |
inode | 338 | fs/ext2/inode.c | "bad inode number: %lu", inode->i_ino); |
inode | 341 | fs/ext2/inode.c | block_group = (inode->i_ino - 1) / EXT2_INODES_PER_GROUP(inode->i_sb); |
inode | 342 | fs/ext2/inode.c | if (block_group >= inode->i_sb->u.ext2_sb.s_groups_count) |
inode | 343 | fs/ext2/inode.c | ext2_panic (inode->i_sb, "ext2_read_inode", |
inode | 345 | fs/ext2/inode.c | group_desc = block_group / EXT2_DESC_PER_BLOCK(inode->i_sb); |
inode | 346 | fs/ext2/inode.c | desc = block_group % EXT2_DESC_PER_BLOCK(inode->i_sb); |
inode | 347 | fs/ext2/inode.c | bh = inode->i_sb->u.ext2_sb.s_group_desc[group_desc]; |
inode | 349 | fs/ext2/inode.c | ext2_panic (inode->i_sb, "ext2_read_inode", |
inode | 353 | fs/ext2/inode.c | (((inode->i_ino - 1) % EXT2_INODES_PER_GROUP(inode->i_sb)) |
inode | 354 | fs/ext2/inode.c | / EXT2_INODES_PER_BLOCK(inode->i_sb)); |
inode | 355 | fs/ext2/inode.c | if (!(bh = bread (inode->i_dev, block, inode->i_sb->s_blocksize))) |
inode | 356 | fs/ext2/inode.c | ext2_panic (inode->i_sb, "ext2_read_inode", |
inode | 358 | fs/ext2/inode.c | "inode=%lu, block=%lu", inode->i_ino, block); |
inode | 360 | fs/ext2/inode.c | (inode->i_ino - 1) % EXT2_INODES_PER_BLOCK(inode->i_sb); |
inode | 361 | fs/ext2/inode.c | inode->i_mode = raw_inode->i_mode; |
inode | 362 | fs/ext2/inode.c | inode->i_uid = raw_inode->i_uid; |
inode | 363 | fs/ext2/inode.c | inode->i_gid = raw_inode->i_gid; |
inode | 364 | fs/ext2/inode.c | inode->i_nlink = raw_inode->i_links_count; |
inode | 365 | fs/ext2/inode.c | inode->i_size = raw_inode->i_size; |
inode | 366 | fs/ext2/inode.c | inode->i_atime = raw_inode->i_atime; |
inode | 367 | fs/ext2/inode.c | inode->i_ctime = raw_inode->i_ctime; |
inode | 368 | fs/ext2/inode.c | inode->i_mtime = raw_inode->i_mtime; |
inode | 369 | fs/ext2/inode.c | inode->u.ext2_i.i_dtime = raw_inode->i_dtime; |
inode | 370 | fs/ext2/inode.c | inode->i_blksize = inode->i_sb->s_blocksize; |
inode | 371 | fs/ext2/inode.c | inode->i_blocks = raw_inode->i_blocks; |
inode | 372 | fs/ext2/inode.c | inode->u.ext2_i.i_flags = raw_inode->i_flags; |
inode | 373 | fs/ext2/inode.c | inode->u.ext2_i.i_faddr = raw_inode->i_faddr; |
inode | 374 | fs/ext2/inode.c | inode->u.ext2_i.i_frag = raw_inode->i_frag; |
inode | 375 | fs/ext2/inode.c | inode->u.ext2_i.i_fsize = raw_inode->i_fsize; |
inode | 376 | fs/ext2/inode.c | inode->u.ext2_i.i_file_acl = raw_inode->i_file_acl; |
inode | 377 | fs/ext2/inode.c | inode->u.ext2_i.i_dir_acl = raw_inode->i_dir_acl; |
inode | 378 | fs/ext2/inode.c | inode->u.ext2_i.i_version = raw_inode->i_version; |
inode | 379 | fs/ext2/inode.c | inode->u.ext2_i.i_block_group = block_group; |
inode | 380 | fs/ext2/inode.c | inode->u.ext2_i.i_next_alloc_block = 0; |
inode | 381 | fs/ext2/inode.c | inode->u.ext2_i.i_next_alloc_goal = 0; |
inode | 382 | fs/ext2/inode.c | if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) |
inode | 383 | fs/ext2/inode.c | inode->i_rdev = raw_inode->i_block[0]; |
inode | 385 | fs/ext2/inode.c | inode->u.ext2_i.i_data[block] = raw_inode->i_block[block]; |
inode | 387 | fs/ext2/inode.c | inode->i_op = NULL; |
inode | 388 | fs/ext2/inode.c | if (inode->i_ino == EXT2_ACL_IDX_INO || |
inode | 389 | fs/ext2/inode.c | inode->i_ino == EXT2_ACL_DATA_INO) |
inode | 391 | fs/ext2/inode.c | else if (S_ISREG(inode->i_mode)) |
inode | 392 | fs/ext2/inode.c | inode->i_op = &ext2_file_inode_operations; |
inode | 393 | fs/ext2/inode.c | else if (S_ISDIR(inode->i_mode)) |
inode | 394 | fs/ext2/inode.c | inode->i_op = &ext2_dir_inode_operations; |
inode | 395 | fs/ext2/inode.c | else if (S_ISLNK(inode->i_mode)) |
inode | 396 | fs/ext2/inode.c | inode->i_op = &ext2_symlink_inode_operations; |
inode | 397 | fs/ext2/inode.c | else if (S_ISCHR(inode->i_mode)) |
inode | 398 | fs/ext2/inode.c | inode->i_op = &chrdev_inode_operations; |
inode | 399 | fs/ext2/inode.c | else if (S_ISBLK(inode->i_mode)) |
inode | 400 | fs/ext2/inode.c | inode->i_op = &blkdev_inode_operations; |
inode | 401 | fs/ext2/inode.c | else if (S_ISFIFO(inode->i_mode)) |
inode | 402 | fs/ext2/inode.c | init_fifo(inode); |
inode | 403 | fs/ext2/inode.c | if (inode->u.ext2_i.i_flags & EXT2_SYNC_FL) |
inode | 404 | fs/ext2/inode.c | inode->i_flags |= MS_SYNC; |
inode | 407 | fs/ext2/inode.c | static struct buffer_head * ext2_update_inode (struct inode * inode) |
inode | 417 | fs/ext2/inode.c | if ((inode->i_ino != EXT2_ROOT_INO && inode->i_ino < EXT2_FIRST_INO) || |
inode | 418 | fs/ext2/inode.c | inode->i_ino > inode->i_sb->u.ext2_sb.s_es->s_inodes_count) { |
inode | 419 | fs/ext2/inode.c | ext2_error (inode->i_sb, "ext2_write_inode", |
inode | 420 | fs/ext2/inode.c | "bad inode number: %lu", inode->i_ino); |
inode | 423 | fs/ext2/inode.c | block_group = (inode->i_ino - 1) / EXT2_INODES_PER_GROUP(inode->i_sb); |
inode | 424 | fs/ext2/inode.c | if (block_group >= inode->i_sb->u.ext2_sb.s_groups_count) |
inode | 425 | fs/ext2/inode.c | ext2_panic (inode->i_sb, "ext2_write_inode", |
inode | 427 | fs/ext2/inode.c | group_desc = block_group / EXT2_DESC_PER_BLOCK(inode->i_sb); |
inode | 428 | fs/ext2/inode.c | desc = block_group % EXT2_DESC_PER_BLOCK(inode->i_sb); |
inode | 429 | fs/ext2/inode.c | bh = inode->i_sb->u.ext2_sb.s_group_desc[group_desc]; |
inode | 431 | fs/ext2/inode.c | ext2_panic (inode->i_sb, "ext2_write_inode", |
inode | 435 | fs/ext2/inode.c | (((inode->i_ino - 1) % EXT2_INODES_PER_GROUP(inode->i_sb)) |
inode | 436 | fs/ext2/inode.c | / EXT2_INODES_PER_BLOCK(inode->i_sb)); |
inode | 437 | fs/ext2/inode.c | if (!(bh = bread (inode->i_dev, block, inode->i_sb->s_blocksize))) |
inode | 438 | fs/ext2/inode.c | ext2_panic (inode->i_sb, "ext2_write_inode", |
inode | 440 | fs/ext2/inode.c | "inode=%lu, block=%lu", inode->i_ino, block); |
inode | 442 | fs/ext2/inode.c | (inode->i_ino - 1) % EXT2_INODES_PER_BLOCK(inode->i_sb); |
inode | 443 | fs/ext2/inode.c | raw_inode->i_mode = inode->i_mode; |
inode | 444 | fs/ext2/inode.c | raw_inode->i_uid = inode->i_uid; |
inode | 445 | fs/ext2/inode.c | raw_inode->i_gid = inode->i_gid; |
inode | 446 | fs/ext2/inode.c | raw_inode->i_links_count = inode->i_nlink; |
inode | 447 | fs/ext2/inode.c | raw_inode->i_size = inode->i_size; |
inode | 448 | fs/ext2/inode.c | raw_inode->i_atime = inode->i_atime; |
inode | 449 | fs/ext2/inode.c | raw_inode->i_ctime = inode->i_ctime; |
inode | 450 | fs/ext2/inode.c | raw_inode->i_mtime = inode->i_mtime; |
inode | 451 | fs/ext2/inode.c | raw_inode->i_blocks = inode->i_blocks; |
inode | 452 | fs/ext2/inode.c | raw_inode->i_dtime = inode->u.ext2_i.i_dtime; |
inode | 453 | fs/ext2/inode.c | raw_inode->i_flags = inode->u.ext2_i.i_flags; |
inode | 454 | fs/ext2/inode.c | raw_inode->i_faddr = inode->u.ext2_i.i_faddr; |
inode | 455 | fs/ext2/inode.c | raw_inode->i_frag = inode->u.ext2_i.i_frag; |
inode | 456 | fs/ext2/inode.c | raw_inode->i_fsize = inode->u.ext2_i.i_fsize; |
inode | 457 | fs/ext2/inode.c | raw_inode->i_file_acl = inode->u.ext2_i.i_file_acl; |
inode | 458 | fs/ext2/inode.c | raw_inode->i_dir_acl = inode->u.ext2_i.i_dir_acl; |
inode | 459 | fs/ext2/inode.c | raw_inode->i_version = inode->u.ext2_i.i_version; |
inode | 460 | fs/ext2/inode.c | if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) |
inode | 461 | fs/ext2/inode.c | raw_inode->i_block[0] = inode->i_rdev; |
inode | 463 | fs/ext2/inode.c | raw_inode->i_block[block] = inode->u.ext2_i.i_data[block]; |
inode | 465 | fs/ext2/inode.c | inode->i_dirt = 0; |
inode | 469 | fs/ext2/inode.c | void ext2_write_inode (struct inode * inode) |
inode | 472 | fs/ext2/inode.c | bh = ext2_update_inode (inode); |
inode | 476 | fs/ext2/inode.c | int ext2_sync_inode (struct inode *inode) |
inode | 481 | fs/ext2/inode.c | bh = ext2_update_inode (inode); |
inode | 489 | fs/ext2/inode.c | inode->i_dev, inode->i_ino); |
inode | 15 | fs/ext2/ioctl.c | int ext2_ioctl (struct inode * inode, struct file * filp, unsigned int cmd, |
inode | 23 | fs/ext2/ioctl.c | put_fs_long (inode->u.ext2_i.i_flags, (long *) arg); |
inode | 26 | fs/ext2/ioctl.c | if ((current->euid != inode->i_uid) && !suser()) |
inode | 28 | fs/ext2/ioctl.c | if (IS_RDONLY(inode)) |
inode | 30 | fs/ext2/ioctl.c | inode->u.ext2_i.i_flags = get_fs_long ((long *) arg); |
inode | 31 | fs/ext2/ioctl.c | inode->i_ctime = CURRENT_TIME; |
inode | 32 | fs/ext2/ioctl.c | inode->i_dirt = 1; |
inode | 35 | fs/ext2/ioctl.c | put_fs_long (inode->u.ext2_i.i_version, (long *) arg); |
inode | 38 | fs/ext2/ioctl.c | if ((current->euid != inode->i_uid) && !suser()) |
inode | 40 | fs/ext2/ioctl.c | if (IS_RDONLY(inode)) |
inode | 42 | fs/ext2/ioctl.c | inode->u.ext2_i.i_version = get_fs_long ((long *) arg); |
inode | 43 | fs/ext2/ioctl.c | inode->i_ctime = CURRENT_TIME; |
inode | 44 | fs/ext2/ioctl.c | inode->i_dirt = 1; |
inode | 39 | fs/ext2/namei.c | if (!de || !de->inode || len > EXT2_NAME_LEN) |
inode | 65 | fs/ext2/namei.c | static struct buffer_head * ext2_find_entry (struct inode * dir, |
inode | 106 | fs/ext2/namei.c | if (de->inode != 0 && ext2_match (namelen, name, de)) { |
inode | 117 | fs/ext2/namei.c | int ext2_lookup (struct inode * dir, const char * name, int len, |
inode | 118 | fs/ext2/namei.c | struct inode ** result) |
inode | 138 | fs/ext2/namei.c | ino = de->inode; |
inode | 165 | fs/ext2/namei.c | static struct buffer_head * ext2_add_entry (struct inode * dir, |
inode | 220 | fs/ext2/namei.c | de->inode = 0; |
inode | 240 | fs/ext2/namei.c | if (de->inode != 0 && ext2_match (namelen, name, de)) { |
inode | 245 | fs/ext2/namei.c | if ((de->inode == 0 && de->rec_len >= rec_len) || |
inode | 248 | fs/ext2/namei.c | if (de->inode) { |
inode | 256 | fs/ext2/namei.c | de->inode = 0; |
inode | 305 | fs/ext2/namei.c | dir->inode = 0; |
inode | 315 | fs/ext2/namei.c | int ext2_create (struct inode * dir,const char * name, int len, int mode, |
inode | 316 | fs/ext2/namei.c | struct inode ** result) |
inode | 318 | fs/ext2/namei.c | struct inode * inode; |
inode | 326 | fs/ext2/namei.c | inode = ext2_new_inode (dir, mode); |
inode | 327 | fs/ext2/namei.c | if (!inode) { |
inode | 331 | fs/ext2/namei.c | inode->i_op = &ext2_file_inode_operations; |
inode | 332 | fs/ext2/namei.c | inode->i_mode = mode; |
inode | 333 | fs/ext2/namei.c | inode->i_dirt = 1; |
inode | 336 | fs/ext2/namei.c | inode->i_nlink--; |
inode | 337 | fs/ext2/namei.c | inode->i_dirt = 1; |
inode | 338 | fs/ext2/namei.c | iput (inode); |
inode | 342 | fs/ext2/namei.c | de->inode = inode->i_ino; |
inode | 345 | fs/ext2/namei.c | de->inode); |
inode | 354 | fs/ext2/namei.c | *result = inode; |
inode | 358 | fs/ext2/namei.c | int ext2_mknod (struct inode * dir, const char * name, int len, int mode, |
inode | 361 | fs/ext2/namei.c | struct inode * inode; |
inode | 374 | fs/ext2/namei.c | inode = ext2_new_inode (dir, mode); |
inode | 375 | fs/ext2/namei.c | if (!inode) { |
inode | 379 | fs/ext2/namei.c | inode->i_uid = current->euid; |
inode | 380 | fs/ext2/namei.c | inode->i_mode = mode; |
inode | 381 | fs/ext2/namei.c | inode->i_op = NULL; |
inode | 382 | fs/ext2/namei.c | if (S_ISREG(inode->i_mode)) |
inode | 383 | fs/ext2/namei.c | inode->i_op = &ext2_file_inode_operations; |
inode | 384 | fs/ext2/namei.c | else if (S_ISDIR(inode->i_mode)) { |
inode | 385 | fs/ext2/namei.c | inode->i_op = &ext2_dir_inode_operations; |
inode | 387 | fs/ext2/namei.c | inode->i_mode |= S_ISGID; |
inode | 389 | fs/ext2/namei.c | else if (S_ISLNK(inode->i_mode)) |
inode | 390 | fs/ext2/namei.c | inode->i_op = &ext2_symlink_inode_operations; |
inode | 391 | fs/ext2/namei.c | else if (S_ISCHR(inode->i_mode)) |
inode | 392 | fs/ext2/namei.c | inode->i_op = &chrdev_inode_operations; |
inode | 393 | fs/ext2/namei.c | else if (S_ISBLK(inode->i_mode)) |
inode | 394 | fs/ext2/namei.c | inode->i_op = &blkdev_inode_operations; |
inode | 395 | fs/ext2/namei.c | else if (S_ISFIFO(inode->i_mode)) |
inode | 396 | fs/ext2/namei.c | init_fifo(inode); |
inode | 398 | fs/ext2/namei.c | inode->i_rdev = rdev; |
inode | 405 | fs/ext2/namei.c | inode->i_mtime = inode->i_atime = CURRENT_TIME; |
inode | 407 | fs/ext2/namei.c | inode->i_dirt = 1; |
inode | 410 | fs/ext2/namei.c | inode->i_nlink--; |
inode | 411 | fs/ext2/namei.c | inode->i_dirt = 1; |
inode | 412 | fs/ext2/namei.c | iput (inode); |
inode | 416 | fs/ext2/namei.c | de->inode = inode->i_ino; |
inode | 419 | fs/ext2/namei.c | de->inode); |
inode | 428 | fs/ext2/namei.c | iput (inode); |
inode | 432 | fs/ext2/namei.c | int ext2_mkdir (struct inode * dir, const char * name, int len, int mode) |
inode | 434 | fs/ext2/namei.c | struct inode * inode; |
inode | 451 | fs/ext2/namei.c | inode = ext2_new_inode (dir, S_IFDIR); |
inode | 452 | fs/ext2/namei.c | if (!inode) { |
inode | 456 | fs/ext2/namei.c | inode->i_op = &ext2_dir_inode_operations; |
inode | 457 | fs/ext2/namei.c | inode->i_size = inode->i_sb->s_blocksize; |
inode | 459 | fs/ext2/namei.c | inode->i_mtime = inode->i_atime = CURRENT_TIME; |
inode | 461 | fs/ext2/namei.c | dir_block = ext2_bread (inode, 0, 1, &err); |
inode | 464 | fs/ext2/namei.c | inode->i_nlink--; |
inode | 465 | fs/ext2/namei.c | inode->i_dirt = 1; |
inode | 466 | fs/ext2/namei.c | iput (inode); |
inode | 469 | fs/ext2/namei.c | inode->i_blocks = inode->i_sb->s_blocksize / 512; |
inode | 471 | fs/ext2/namei.c | de->inode = inode->i_ino; |
inode | 476 | fs/ext2/namei.c | de->inode = dir->i_ino; |
inode | 477 | fs/ext2/namei.c | de->rec_len = inode->i_sb->s_blocksize - EXT2_DIR_REC_LEN(1); |
inode | 480 | fs/ext2/namei.c | inode->i_nlink = 2; |
inode | 483 | fs/ext2/namei.c | inode->i_mode = S_IFDIR | (mode & S_IRWXUGO & ~current->umask); |
inode | 485 | fs/ext2/namei.c | inode->i_mode |= S_ISGID; |
inode | 486 | fs/ext2/namei.c | inode->i_dirt = 1; |
inode | 490 | fs/ext2/namei.c | inode->i_nlink = 0; |
inode | 491 | fs/ext2/namei.c | inode->i_dirt = 1; |
inode | 492 | fs/ext2/namei.c | iput (inode); |
inode | 495 | fs/ext2/namei.c | de->inode = inode->i_ino; |
inode | 498 | fs/ext2/namei.c | de->inode); |
inode | 508 | fs/ext2/namei.c | iput (inode); |
inode | 516 | fs/ext2/namei.c | static int empty_dir (struct inode * inode) |
inode | 524 | fs/ext2/namei.c | sb = inode->i_sb; |
inode | 525 | fs/ext2/namei.c | if (inode->i_size < EXT2_DIR_REC_LEN(1) + EXT2_DIR_REC_LEN(2) || |
inode | 526 | fs/ext2/namei.c | !(bh = ext2_bread (inode, 0, 0, &err))) { |
inode | 527 | fs/ext2/namei.c | ext2_warning (inode->i_sb, "empty_dir", |
inode | 528 | fs/ext2/namei.c | "bad directory (dir %lu)", inode->i_ino); |
inode | 533 | fs/ext2/namei.c | if (de->inode != inode->i_ino || !de1->inode || |
inode | 535 | fs/ext2/namei.c | ext2_warning (inode->i_sb, "empty_dir", |
inode | 536 | fs/ext2/namei.c | "bad directory (dir %lu)", inode->i_ino); |
inode | 541 | fs/ext2/namei.c | while (offset < inode->i_size ) { |
inode | 544 | fs/ext2/namei.c | bh = ext2_bread (inode, offset >> EXT2_BLOCK_SIZE_BITS(sb), 1, &err); |
inode | 551 | fs/ext2/namei.c | if (! ext2_check_dir_entry ("empty_dir", inode, de, bh, |
inode | 556 | fs/ext2/namei.c | if (de->inode) { |
inode | 567 | fs/ext2/namei.c | int ext2_rmdir (struct inode * dir, const char * name, int len) |
inode | 570 | fs/ext2/namei.c | struct inode * inode; |
inode | 577 | fs/ext2/namei.c | inode = NULL; |
inode | 583 | fs/ext2/namei.c | if (!(inode = iget (dir->i_sb, de->inode))) |
inode | 585 | fs/ext2/namei.c | if (inode->i_dev != dir->i_dev) |
inode | 587 | fs/ext2/namei.c | if (de->inode != inode->i_ino) { |
inode | 588 | fs/ext2/namei.c | iput(inode); |
inode | 595 | fs/ext2/namei.c | inode->i_uid != current->euid) |
inode | 597 | fs/ext2/namei.c | if (inode == dir) /* we may not delete ".", but "../dir" is ok */ |
inode | 599 | fs/ext2/namei.c | if (!S_ISDIR(inode->i_mode)) { |
inode | 603 | fs/ext2/namei.c | if (!empty_dir (inode)) { |
inode | 607 | fs/ext2/namei.c | if (de->inode != inode->i_ino) { |
inode | 611 | fs/ext2/namei.c | if (inode->i_count > 1) { |
inode | 616 | fs/ext2/namei.c | inode->i_size = 0; |
inode | 627 | fs/ext2/namei.c | ext2_dcache_remove(inode->i_dev, inode->i_ino, ".", 1); |
inode | 628 | fs/ext2/namei.c | ext2_dcache_remove(inode->i_dev, inode->i_ino, "..", 2); |
inode | 630 | fs/ext2/namei.c | if (inode->i_nlink != 2) |
inode | 631 | fs/ext2/namei.c | ext2_warning (inode->i_sb, "ext2_rmdir", |
inode | 633 | fs/ext2/namei.c | inode->i_nlink); |
inode | 637 | fs/ext2/namei.c | inode->i_nlink = 0; |
inode | 638 | fs/ext2/namei.c | inode->i_dirt = 1; |
inode | 640 | fs/ext2/namei.c | inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME; |
inode | 644 | fs/ext2/namei.c | iput (inode); |
inode | 649 | fs/ext2/namei.c | int ext2_unlink (struct inode * dir, const char * name, int len) |
inode | 652 | fs/ext2/namei.c | struct inode * inode; |
inode | 660 | fs/ext2/namei.c | inode = NULL; |
inode | 664 | fs/ext2/namei.c | if (!(inode = iget (dir->i_sb, de->inode))) |
inode | 667 | fs/ext2/namei.c | if (S_ISDIR(inode->i_mode)) |
inode | 669 | fs/ext2/namei.c | if (de->inode != inode->i_ino) { |
inode | 670 | fs/ext2/namei.c | iput(inode); |
inode | 677 | fs/ext2/namei.c | current->euid != inode->i_uid && |
inode | 680 | fs/ext2/namei.c | if (!inode->i_nlink) { |
inode | 681 | fs/ext2/namei.c | ext2_warning (inode->i_sb, "ext2_unlink", |
inode | 683 | fs/ext2/namei.c | inode->i_ino, inode->i_nlink); |
inode | 684 | fs/ext2/namei.c | inode->i_nlink = 1; |
inode | 699 | fs/ext2/namei.c | inode->i_nlink--; |
inode | 700 | fs/ext2/namei.c | inode->i_dirt = 1; |
inode | 701 | fs/ext2/namei.c | inode->i_ctime = dir->i_ctime; |
inode | 705 | fs/ext2/namei.c | iput (inode); |
inode | 710 | fs/ext2/namei.c | int ext2_symlink (struct inode * dir, const char * name, int len, |
inode | 714 | fs/ext2/namei.c | struct inode * inode = NULL; |
inode | 721 | fs/ext2/namei.c | if (!(inode = ext2_new_inode (dir, S_IFLNK))) { |
inode | 725 | fs/ext2/namei.c | inode->i_mode = S_IFLNK | S_IRWXUGO; |
inode | 726 | fs/ext2/namei.c | inode->i_op = &ext2_symlink_inode_operations; |
inode | 727 | fs/ext2/namei.c | for (l = 0; l < inode->i_sb->s_blocksize - 1 && |
inode | 734 | fs/ext2/namei.c | name_block = ext2_bread (inode, 0, 1, &err); |
inode | 737 | fs/ext2/namei.c | inode->i_nlink--; |
inode | 738 | fs/ext2/namei.c | inode->i_dirt = 1; |
inode | 739 | fs/ext2/namei.c | iput (inode); |
inode | 744 | fs/ext2/namei.c | link = (char *) inode->u.ext2_i.i_data; |
inode | 750 | fs/ext2/namei.c | while (i < inode->i_sb->s_blocksize - 1 && (c = *(symname++))) |
inode | 757 | fs/ext2/namei.c | inode->i_size = i; |
inode | 758 | fs/ext2/namei.c | inode->i_dirt = 1; |
inode | 761 | fs/ext2/namei.c | inode->i_nlink--; |
inode | 762 | fs/ext2/namei.c | inode->i_dirt = 1; |
inode | 763 | fs/ext2/namei.c | iput (inode); |
inode | 770 | fs/ext2/namei.c | inode->i_nlink--; |
inode | 771 | fs/ext2/namei.c | inode->i_dirt = 1; |
inode | 772 | fs/ext2/namei.c | iput (inode); |
inode | 776 | fs/ext2/namei.c | de->inode = inode->i_ino; |
inode | 779 | fs/ext2/namei.c | de->inode); |
inode | 788 | fs/ext2/namei.c | iput (inode); |
inode | 792 | fs/ext2/namei.c | int ext2_link (struct inode * oldinode, struct inode * dir, |
inode | 822 | fs/ext2/namei.c | de->inode = oldinode->i_ino; |
inode | 825 | fs/ext2/namei.c | de->inode); |
inode | 841 | fs/ext2/namei.c | static int subdir (struct inode * new_inode, struct inode * old_inode) |
inode | 867 | fs/ext2/namei.c | ((struct ext2_dir_entry *) buffer)->rec_len))->inode |
inode | 884 | fs/ext2/namei.c | static int do_ext2_rename (struct inode * old_dir, const char * old_name, |
inode | 885 | fs/ext2/namei.c | int old_len, struct inode * new_dir, |
inode | 888 | fs/ext2/namei.c | struct inode * old_inode, * new_inode; |
inode | 912 | fs/ext2/namei.c | old_inode = __iget (old_dir->i_sb, old_de->inode, 0); /* don't cross mnt-points */ |
inode | 922 | fs/ext2/namei.c | new_inode = __iget (new_dir->i_sb, new_de->inode, 0); /* no mntp cross */ |
inode | 973 | fs/ext2/namei.c | if (new_inode && (new_de->inode != new_inode->i_ino)) |
inode | 975 | fs/ext2/namei.c | if (new_de->inode && !new_inode) |
inode | 977 | fs/ext2/namei.c | if (old_de->inode != old_inode->i_ino) |
inode | 980 | fs/ext2/namei.c | new_de->inode = old_inode->i_ino; |
inode | 985 | fs/ext2/namei.c | new_de->name_len, new_de->inode); |
inode | 1047 | fs/ext2/namei.c | int ext2_rename (struct inode * old_dir, const char * old_name, int old_len, |
inode | 1048 | fs/ext2/namei.c | struct inode * new_dir, const char * new_name, int new_len) |
inode | 23 | fs/ext2/symlink.c | static int ext2_readlink (struct inode *, char *, int); |
inode | 24 | fs/ext2/symlink.c | static int ext2_follow_link (struct inode *, struct inode *, int, int, |
inode | 25 | fs/ext2/symlink.c | struct inode **); |
inode | 48 | fs/ext2/symlink.c | static int ext2_follow_link(struct inode * dir, struct inode * inode, |
inode | 49 | fs/ext2/symlink.c | int flag, int mode, struct inode ** res_inode) |
inode | 60 | fs/ext2/symlink.c | if (!inode) { |
inode | 64 | fs/ext2/symlink.c | if (!S_ISLNK(inode->i_mode)) { |
inode | 66 | fs/ext2/symlink.c | *res_inode = inode; |
inode | 71 | fs/ext2/symlink.c | iput (inode); |
inode | 74 | fs/ext2/symlink.c | if (inode->i_blocks) { |
inode | 75 | fs/ext2/symlink.c | if (!(bh = ext2_bread (inode, 0, 0, &error))) { |
inode | 77 | fs/ext2/symlink.c | iput (inode); |
inode | 82 | fs/ext2/symlink.c | link = (char *) inode->u.ext2_i.i_data; |
inode | 86 | fs/ext2/symlink.c | iput (inode); |
inode | 92 | fs/ext2/symlink.c | static int ext2_readlink (struct inode * inode, char * buffer, int buflen) |
inode | 99 | fs/ext2/symlink.c | if (!S_ISLNK(inode->i_mode)) { |
inode | 100 | fs/ext2/symlink.c | iput (inode); |
inode | 103 | fs/ext2/symlink.c | if (buflen > inode->i_sb->s_blocksize - 1) |
inode | 104 | fs/ext2/symlink.c | buflen = inode->i_sb->s_blocksize - 1; |
inode | 105 | fs/ext2/symlink.c | if (inode->i_blocks) { |
inode | 106 | fs/ext2/symlink.c | bh = ext2_bread (inode, 0, 0, &err); |
inode | 108 | fs/ext2/symlink.c | iput (inode); |
inode | 114 | fs/ext2/symlink.c | link = (char *) inode->u.ext2_i.i_data; |
inode | 120 | fs/ext2/symlink.c | iput (inode); |
inode | 42 | fs/ext2/truncate.c | static int trunc_direct (struct inode * inode) |
inode | 48 | fs/ext2/truncate.c | int blocks = inode->i_sb->s_blocksize / 512; |
inode | 49 | fs/ext2/truncate.c | #define DIRECT_BLOCK ((inode->i_size + inode->i_sb->s_blocksize - 1) / \ |
inode | 50 | fs/ext2/truncate.c | inode->i_sb->s_blocksize) |
inode | 55 | fs/ext2/truncate.c | p = inode->u.ext2_i.i_data + i; |
inode | 59 | fs/ext2/truncate.c | if (inode->u.ext2_i.i_flags & EXT2_SECRM_FL) |
inode | 60 | fs/ext2/truncate.c | bh = getblk (inode->i_dev, tmp, |
inode | 61 | fs/ext2/truncate.c | inode->i_sb->s_blocksize); |
inode | 63 | fs/ext2/truncate.c | bh = get_hash_table (inode->i_dev, tmp, |
inode | 64 | fs/ext2/truncate.c | inode->i_sb->s_blocksize); |
inode | 75 | fs/ext2/truncate.c | inode->i_blocks -= blocks; |
inode | 76 | fs/ext2/truncate.c | inode->i_dirt = 1; |
inode | 77 | fs/ext2/truncate.c | if (inode->u.ext2_i.i_flags & EXT2_SECRM_FL) { |
inode | 78 | fs/ext2/truncate.c | clear_block (bh->b_data, inode->i_sb->s_blocksize, |
inode | 83 | fs/ext2/truncate.c | ext2_free_block (inode->i_sb, tmp); |
inode | 88 | fs/ext2/truncate.c | static int trunc_indirect (struct inode * inode, int offset, unsigned long * p) |
inode | 95 | fs/ext2/truncate.c | int addr_per_block = EXT2_ADDR_PER_BLOCK(inode->i_sb); |
inode | 96 | fs/ext2/truncate.c | int blocks = inode->i_sb->s_blocksize / 512; |
inode | 103 | fs/ext2/truncate.c | ind_bh = bread (inode->i_dev, tmp, inode->i_sb->s_blocksize); |
inode | 122 | fs/ext2/truncate.c | if (inode->u.ext2_i.i_flags & EXT2_SECRM_FL) |
inode | 123 | fs/ext2/truncate.c | bh = getblk (inode->i_dev, tmp, |
inode | 124 | fs/ext2/truncate.c | inode->i_sb->s_blocksize); |
inode | 126 | fs/ext2/truncate.c | bh = get_hash_table (inode->i_dev, tmp, |
inode | 127 | fs/ext2/truncate.c | inode->i_sb->s_blocksize); |
inode | 139 | fs/ext2/truncate.c | if (inode->u.ext2_i.i_flags & EXT2_SECRM_FL) { |
inode | 140 | fs/ext2/truncate.c | clear_block (bh->b_data, inode->i_sb->s_blocksize, |
inode | 145 | fs/ext2/truncate.c | ext2_free_block (inode->i_sb, tmp); |
inode | 146 | fs/ext2/truncate.c | inode->i_blocks -= blocks; |
inode | 147 | fs/ext2/truncate.c | inode->i_dirt = 1; |
inode | 159 | fs/ext2/truncate.c | inode->i_blocks -= blocks; |
inode | 160 | fs/ext2/truncate.c | inode->i_dirt = 1; |
inode | 161 | fs/ext2/truncate.c | ext2_free_block (inode->i_sb, tmp); |
inode | 163 | fs/ext2/truncate.c | if (IS_SYNC(inode) && ind_bh->b_dirt) { |
inode | 171 | fs/ext2/truncate.c | static int trunc_dindirect (struct inode * inode, int offset, |
inode | 178 | fs/ext2/truncate.c | int addr_per_block = EXT2_ADDR_PER_BLOCK(inode->i_sb); |
inode | 179 | fs/ext2/truncate.c | int blocks = inode->i_sb->s_blocksize / 512; |
inode | 186 | fs/ext2/truncate.c | dind_bh = bread (inode->i_dev, tmp, inode->i_sb->s_blocksize); |
inode | 205 | fs/ext2/truncate.c | retry |= trunc_indirect (inode, offset + (i * addr_per_block), |
inode | 219 | fs/ext2/truncate.c | inode->i_blocks -= blocks; |
inode | 220 | fs/ext2/truncate.c | inode->i_dirt = 1; |
inode | 221 | fs/ext2/truncate.c | ext2_free_block (inode->i_sb, tmp); |
inode | 223 | fs/ext2/truncate.c | if (IS_SYNC(inode) && dind_bh->b_dirt) { |
inode | 231 | fs/ext2/truncate.c | static int trunc_tindirect (struct inode * inode) |
inode | 237 | fs/ext2/truncate.c | int addr_per_block = EXT2_ADDR_PER_BLOCK(inode->i_sb); |
inode | 238 | fs/ext2/truncate.c | int blocks = inode->i_sb->s_blocksize / 512; |
inode | 244 | fs/ext2/truncate.c | p = inode->u.ext2_i.i_data + EXT2_TIND_BLOCK; |
inode | 247 | fs/ext2/truncate.c | tind_bh = bread (inode->i_dev, tmp, inode->i_sb->s_blocksize); |
inode | 263 | fs/ext2/truncate.c | retry |= trunc_dindirect(inode, EXT2_NDIR_BLOCKS + |
inode | 278 | fs/ext2/truncate.c | inode->i_blocks -= blocks; |
inode | 279 | fs/ext2/truncate.c | inode->i_dirt = 1; |
inode | 280 | fs/ext2/truncate.c | ext2_free_block (inode->i_sb, tmp); |
inode | 282 | fs/ext2/truncate.c | if (IS_SYNC(inode) && tind_bh->b_dirt) { |
inode | 290 | fs/ext2/truncate.c | void ext2_truncate (struct inode * inode) |
inode | 294 | fs/ext2/truncate.c | if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || |
inode | 295 | fs/ext2/truncate.c | S_ISLNK(inode->i_mode))) |
inode | 298 | fs/ext2/truncate.c | retry = trunc_direct(inode); |
inode | 299 | fs/ext2/truncate.c | retry |= trunc_indirect (inode, EXT2_IND_BLOCK, |
inode | 300 | fs/ext2/truncate.c | (unsigned long *) &inode->u.ext2_i.i_data[EXT2_IND_BLOCK]); |
inode | 301 | fs/ext2/truncate.c | retry |= trunc_dindirect (inode, EXT2_IND_BLOCK + |
inode | 302 | fs/ext2/truncate.c | EXT2_ADDR_PER_BLOCK(inode->i_sb), |
inode | 303 | fs/ext2/truncate.c | (unsigned long *) &inode->u.ext2_i.i_data[EXT2_DIND_BLOCK]); |
inode | 304 | fs/ext2/truncate.c | retry |= trunc_tindirect (inode); |
inode | 307 | fs/ext2/truncate.c | if (IS_SYNC(inode) && inode->i_dirt) |
inode | 308 | fs/ext2/truncate.c | ext2_sync_inode (inode); |
inode | 312 | fs/ext2/truncate.c | inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
inode | 313 | fs/ext2/truncate.c | inode->i_dirt = 1; |
inode | 321 | fs/ext2/truncate.c | void ext2_release (struct inode * inode, struct file * filp) |
inode | 12 | fs/fifo.c | static int fifo_open(struct inode * inode,struct file * filp) |
inode | 26 | fs/fifo.c | if (!PIPE_READERS(*inode)++) |
inode | 27 | fs/fifo.c | wake_up(&PIPE_WRITE_WAIT(*inode)); |
inode | 28 | fs/fifo.c | if (!(filp->f_flags & O_NONBLOCK) && !PIPE_WRITERS(*inode)) { |
inode | 29 | fs/fifo.c | PIPE_RD_OPENERS(*inode)++; |
inode | 30 | fs/fifo.c | while (!PIPE_WRITERS(*inode)) { |
inode | 35 | fs/fifo.c | interruptible_sleep_on(&PIPE_READ_WAIT(*inode)); |
inode | 37 | fs/fifo.c | if (!--PIPE_RD_OPENERS(*inode)) |
inode | 38 | fs/fifo.c | wake_up(&PIPE_WRITE_WAIT(*inode)); |
inode | 40 | fs/fifo.c | while (PIPE_WR_OPENERS(*inode)) |
inode | 41 | fs/fifo.c | interruptible_sleep_on(&PIPE_READ_WAIT(*inode)); |
inode | 42 | fs/fifo.c | if (PIPE_WRITERS(*inode)) |
inode | 44 | fs/fifo.c | if (retval && !--PIPE_READERS(*inode)) |
inode | 45 | fs/fifo.c | wake_up(&PIPE_WRITE_WAIT(*inode)); |
inode | 54 | fs/fifo.c | if ((filp->f_flags & O_NONBLOCK) && !PIPE_READERS(*inode)) { |
inode | 59 | fs/fifo.c | if (!PIPE_WRITERS(*inode)++) |
inode | 60 | fs/fifo.c | wake_up(&PIPE_READ_WAIT(*inode)); |
inode | 61 | fs/fifo.c | if (!PIPE_READERS(*inode)) { |
inode | 62 | fs/fifo.c | PIPE_WR_OPENERS(*inode)++; |
inode | 63 | fs/fifo.c | while (!PIPE_READERS(*inode)) { |
inode | 68 | fs/fifo.c | interruptible_sleep_on(&PIPE_WRITE_WAIT(*inode)); |
inode | 70 | fs/fifo.c | if (!--PIPE_WR_OPENERS(*inode)) |
inode | 71 | fs/fifo.c | wake_up(&PIPE_READ_WAIT(*inode)); |
inode | 73 | fs/fifo.c | while (PIPE_RD_OPENERS(*inode)) |
inode | 74 | fs/fifo.c | interruptible_sleep_on(&PIPE_WRITE_WAIT(*inode)); |
inode | 75 | fs/fifo.c | if (retval && !--PIPE_WRITERS(*inode)) |
inode | 76 | fs/fifo.c | wake_up(&PIPE_READ_WAIT(*inode)); |
inode | 87 | fs/fifo.c | if (!PIPE_READERS(*inode)++) |
inode | 88 | fs/fifo.c | wake_up(&PIPE_WRITE_WAIT(*inode)); |
inode | 89 | fs/fifo.c | while (PIPE_WR_OPENERS(*inode)) |
inode | 90 | fs/fifo.c | interruptible_sleep_on(&PIPE_READ_WAIT(*inode)); |
inode | 91 | fs/fifo.c | if (!PIPE_WRITERS(*inode)++) |
inode | 92 | fs/fifo.c | wake_up(&PIPE_READ_WAIT(*inode)); |
inode | 93 | fs/fifo.c | while (PIPE_RD_OPENERS(*inode)) |
inode | 94 | fs/fifo.c | interruptible_sleep_on(&PIPE_WRITE_WAIT(*inode)); |
inode | 100 | fs/fifo.c | if (retval || PIPE_BASE(*inode)) |
inode | 103 | fs/fifo.c | if (PIPE_BASE(*inode)) { |
inode | 109 | fs/fifo.c | PIPE_HEAD(*inode) = PIPE_TAIL(*inode) = 0; |
inode | 110 | fs/fifo.c | PIPE_BASE(*inode) = (char *) page; |
inode | 150 | fs/fifo.c | void init_fifo(struct inode * inode) |
inode | 152 | fs/fifo.c | inode->i_op = &fifo_inode_operations; |
inode | 153 | fs/fifo.c | inode->i_pipe = 1; |
inode | 154 | fs/fifo.c | PIPE_BASE(*inode) = NULL; |
inode | 155 | fs/fifo.c | PIPE_HEAD(*inode) = PIPE_TAIL(*inode) = 0; |
inode | 156 | fs/fifo.c | PIPE_RD_OPENERS(*inode) = PIPE_WR_OPENERS(*inode) = 0; |
inode | 157 | fs/fifo.c | PIPE_READ_WAIT(*inode) = PIPE_WRITE_WAIT(*inode) = NULL; |
inode | 158 | fs/fifo.c | PIPE_READERS(*inode) = PIPE_WRITERS(*inode) = 0; |
inode | 124 | fs/hpfs/hpfs_fs.c | static void hpfs_read_inode(struct inode *); |
inode | 143 | fs/hpfs/hpfs_fs.c | static int hpfs_file_read(struct inode *, struct file *, char *, int); |
inode | 144 | fs/hpfs/hpfs_fs.c | static secno hpfs_bmap(struct inode *, unsigned); |
inode | 174 | fs/hpfs/hpfs_fs.c | (int (*)(struct inode *, int)) |
inode | 182 | fs/hpfs/hpfs_fs.c | static int hpfs_dir_read(struct inode *inode, struct file *filp, |
inode | 184 | fs/hpfs/hpfs_fs.c | static int hpfs_readdir(struct inode *inode, struct file *filp, |
inode | 186 | fs/hpfs/hpfs_fs.c | static int hpfs_lookup(struct inode *, const char *, int, struct inode **); |
inode | 235 | fs/hpfs/hpfs_fs.c | static void count_dnodes(struct inode *inode, dnode_secno dno, |
inode | 239 | fs/hpfs/hpfs_fs.c | static secno bplus_lookup(struct inode *inode, struct bplus_header *b, |
inode | 241 | fs/hpfs/hpfs_fs.c | static struct hpfs_dirent *map_dirent(struct inode *inode, dnode_secno dno, |
inode | 244 | fs/hpfs/hpfs_fs.c | static struct hpfs_dirent *map_pos_dirent(struct inode *inode, off_t *posp, |
inode | 248 | fs/hpfs/hpfs_fs.c | static dnode_secno dir_subdno(struct inode *inode, unsigned pos); |
inode | 617 | fs/hpfs/hpfs_fs.c | static void hpfs_read_inode(struct inode *inode) |
inode | 619 | fs/hpfs/hpfs_fs.c | struct super_block *s = inode->i_sb; |
inode | 623 | fs/hpfs/hpfs_fs.c | inode->i_op = 0; |
inode | 624 | fs/hpfs/hpfs_fs.c | inode->i_mode = 0; |
inode | 626 | fs/hpfs/hpfs_fs.c | if (inode->i_ino == 0 |
inode | 627 | fs/hpfs/hpfs_fs.c | || ino_secno(inode->i_ino) >= inode->i_sb->s_hpfs_fs_size) { |
inode | 636 | fs/hpfs/hpfs_fs.c | inode->i_uid = s->s_hpfs_uid; |
inode | 637 | fs/hpfs/hpfs_fs.c | inode->i_gid = s->s_hpfs_gid; |
inode | 638 | fs/hpfs/hpfs_fs.c | inode->i_mode = s->s_hpfs_mode; |
inode | 639 | fs/hpfs/hpfs_fs.c | inode->i_hpfs_conv = s->s_hpfs_conv; |
inode | 641 | fs/hpfs/hpfs_fs.c | inode->i_hpfs_dno = 0; |
inode | 642 | fs/hpfs/hpfs_fs.c | inode->i_hpfs_n_secs = 0; |
inode | 643 | fs/hpfs/hpfs_fs.c | inode->i_hpfs_file_sec = 0; |
inode | 644 | fs/hpfs/hpfs_fs.c | inode->i_hpfs_disk_sec = 0; |
inode | 645 | fs/hpfs/hpfs_fs.c | inode->i_hpfs_dpos = 0; |
inode | 646 | fs/hpfs/hpfs_fs.c | inode->i_hpfs_dsubdno = 0; |
inode | 652 | fs/hpfs/hpfs_fs.c | if (ino_is_dir(inode->i_ino)) |
inode | 653 | fs/hpfs/hpfs_fs.c | inode->i_mode |= S_IFDIR; |
inode | 655 | fs/hpfs/hpfs_fs.c | inode->i_mode |= S_IFREG; |
inode | 656 | fs/hpfs/hpfs_fs.c | inode->i_mode &= ~0111; |
inode | 665 | fs/hpfs/hpfs_fs.c | inode->i_atime = 0; |
inode | 666 | fs/hpfs/hpfs_fs.c | inode->i_mtime = 0; |
inode | 667 | fs/hpfs/hpfs_fs.c | inode->i_ctime = 0; |
inode | 668 | fs/hpfs/hpfs_fs.c | inode->i_size = 0; |
inode | 674 | fs/hpfs/hpfs_fs.c | if (S_ISREG(inode->i_mode)) { |
inode | 676 | fs/hpfs/hpfs_fs.c | inode->i_op = (struct inode_operations *) &hpfs_file_iops; |
inode | 677 | fs/hpfs/hpfs_fs.c | inode->i_nlink = 1; |
inode | 678 | fs/hpfs/hpfs_fs.c | inode->i_blksize = 512; |
inode | 684 | fs/hpfs/hpfs_fs.c | struct fnode *fnode = map_fnode(inode->i_dev, |
inode | 685 | fs/hpfs/hpfs_fs.c | inode->i_ino, &bh0); |
inode | 689 | fs/hpfs/hpfs_fs.c | inode->i_mode = 0; |
inode | 693 | fs/hpfs/hpfs_fs.c | inode->i_hpfs_parent_dir = dir_ino(fnode->up); |
inode | 694 | fs/hpfs/hpfs_fs.c | inode->i_hpfs_dno = fnode->u.external[0].disk_secno; |
inode | 699 | fs/hpfs/hpfs_fs.c | count_dnodes(inode, inode->i_hpfs_dno, &n_dnodes, &n_subdirs); |
inode | 701 | fs/hpfs/hpfs_fs.c | inode->i_op = (struct inode_operations *) &hpfs_dir_iops; |
inode | 702 | fs/hpfs/hpfs_fs.c | inode->i_blksize = 512; /* 2048 here confuses ls & du & ... */ |
inode | 703 | fs/hpfs/hpfs_fs.c | inode->i_blocks = 4 * n_dnodes; |
inode | 704 | fs/hpfs/hpfs_fs.c | inode->i_size = 512 * inode->i_blocks; |
inode | 705 | fs/hpfs/hpfs_fs.c | inode->i_nlink = 2 + n_subdirs; |
inode | 766 | fs/hpfs/hpfs_fs.c | static void count_dnodes(struct inode *inode, dnode_secno dno, |
inode | 774 | fs/hpfs/hpfs_fs.c | dnode = map_dnode(inode->i_dev, dno, &qbh); |
inode | 784 | fs/hpfs/hpfs_fs.c | count_dnodes(inode, de_down_pointer(de), |
inode | 862 | fs/hpfs/hpfs_fs.c | static int hpfs_file_read(struct inode *inode, struct file *filp, |
inode | 870 | fs/hpfs/hpfs_fs.c | if (inode == 0 || !S_ISREG(inode->i_mode)) |
inode | 876 | fs/hpfs/hpfs_fs.c | if (count > inode->i_size - filp->f_pos) |
inode | 877 | fs/hpfs/hpfs_fs.c | count = inode->i_size - filp->f_pos; |
inode | 898 | fs/hpfs/hpfs_fs.c | block = map_sector(inode->i_dev, hpfs_bmap(inode, q), &bh); |
inode | 906 | fs/hpfs/hpfs_fs.c | if (inode->i_hpfs_conv == CONV_AUTO) |
inode | 907 | fs/hpfs/hpfs_fs.c | inode->i_hpfs_conv = choose_conv(block + r, n); |
inode | 909 | fs/hpfs/hpfs_fs.c | if (inode->i_hpfs_conv == CONV_BINARY) { |
inode | 922 | fs/hpfs/hpfs_fs.c | if (count > inode->i_size - filp->f_pos - n + n0) |
inode | 923 | fs/hpfs/hpfs_fs.c | count = inode->i_size - filp->f_pos - n + n0; |
inode | 993 | fs/hpfs/hpfs_fs.c | static secno hpfs_bmap(struct inode *inode, unsigned file_secno) |
inode | 1004 | fs/hpfs/hpfs_fs.c | n = file_secno - inode->i_hpfs_file_sec; |
inode | 1005 | fs/hpfs/hpfs_fs.c | if (n < inode->i_hpfs_n_secs) |
inode | 1006 | fs/hpfs/hpfs_fs.c | return inode->i_hpfs_disk_sec + n; |
inode | 1013 | fs/hpfs/hpfs_fs.c | fnode = map_fnode(inode->i_dev, inode->i_ino, &bh); |
inode | 1016 | fs/hpfs/hpfs_fs.c | disk_secno = bplus_lookup(inode, &fnode->btree, |
inode | 1030 | fs/hpfs/hpfs_fs.c | static secno bplus_lookup(struct inode *inode, struct bplus_header *b, |
inode | 1046 | fs/hpfs/hpfs_fs.c | inode->i_hpfs_file_sec = n[i].file_secno; |
inode | 1047 | fs/hpfs/hpfs_fs.c | inode->i_hpfs_disk_sec = n[i].disk_secno; |
inode | 1048 | fs/hpfs/hpfs_fs.c | inode->i_hpfs_n_secs = n[i].length; |
inode | 1066 | fs/hpfs/hpfs_fs.c | anode = map_anode(inode->i_dev, ano, bhp); |
inode | 1069 | fs/hpfs/hpfs_fs.c | return bplus_lookup(inode, &anode->btree, |
inode | 1100 | fs/hpfs/hpfs_fs.c | static int hpfs_lookup(struct inode *dir, const char *name, int len, |
inode | 1101 | fs/hpfs/hpfs_fs.c | struct inode **result) |
inode | 1105 | fs/hpfs/hpfs_fs.c | struct inode *inode; |
inode | 1150 | fs/hpfs/hpfs_fs.c | if (!(inode = iget(dir->i_sb, ino))) |
inode | 1158 | fs/hpfs/hpfs_fs.c | if (!inode->i_atime) { |
inode | 1159 | fs/hpfs/hpfs_fs.c | inode->i_atime = local_to_gmt(de->read_date); |
inode | 1160 | fs/hpfs/hpfs_fs.c | inode->i_mtime = local_to_gmt(de->write_date); |
inode | 1161 | fs/hpfs/hpfs_fs.c | inode->i_ctime = local_to_gmt(de->creation_date); |
inode | 1163 | fs/hpfs/hpfs_fs.c | inode->i_mode &= ~0222; |
inode | 1165 | fs/hpfs/hpfs_fs.c | inode->i_size = de->file_size; |
inode | 1172 | fs/hpfs/hpfs_fs.c | inode->i_blocks = 1 + ((inode->i_size + 511) >> 9); |
inode | 1182 | fs/hpfs/hpfs_fs.c | *result = inode; |
inode | 1226 | fs/hpfs/hpfs_fs.c | static struct hpfs_dirent *map_dirent(struct inode *inode, dnode_secno dno, |
inode | 1238 | fs/hpfs/hpfs_fs.c | dnode = map_dnode(inode->i_dev, dno, qbh); |
inode | 1279 | fs/hpfs/hpfs_fs.c | return map_dirent(inode, sub_dno, |
inode | 1328 | fs/hpfs/hpfs_fs.c | static int hpfs_readdir(struct inode *inode, struct file *filp, |
inode | 1336 | fs/hpfs/hpfs_fs.c | if (inode == 0 |
inode | 1337 | fs/hpfs/hpfs_fs.c | || inode->i_sb == 0 |
inode | 1338 | fs/hpfs/hpfs_fs.c | || !S_ISDIR(inode->i_mode)) |
inode | 1341 | fs/hpfs/hpfs_fs.c | lc = inode->i_sb->s_hpfs_lowercase; |
inode | 1345 | fs/hpfs/hpfs_fs.c | write_one_dirent(dirent, ".", 1, inode->i_ino, lc); |
inode | 1351 | fs/hpfs/hpfs_fs.c | inode->i_hpfs_parent_dir, lc); |
inode | 1359 | fs/hpfs/hpfs_fs.c | de = map_pos_dirent(inode, &filp->f_pos, &qbh); |
inode | 1411 | fs/hpfs/hpfs_fs.c | static struct hpfs_dirent *map_pos_dirent(struct inode *inode, off_t *posp, |
inode | 1431 | fs/hpfs/hpfs_fs.c | dno = dir_subdno(inode, q); |
inode | 1439 | fs/hpfs/hpfs_fs.c | de = map_nth_dirent(inode->i_dev, dno, r, qbh); |
inode | 1449 | fs/hpfs/hpfs_fs.c | return map_pos_dirent(inode, posp, qbh); |
inode | 1467 | fs/hpfs/hpfs_fs.c | return map_pos_dirent(inode, posp, qbh); |
inode | 1477 | fs/hpfs/hpfs_fs.c | static dnode_secno dir_subdno(struct inode *inode, unsigned pos) |
inode | 1487 | fs/hpfs/hpfs_fs.c | return inode->i_hpfs_dno; |
inode | 1493 | fs/hpfs/hpfs_fs.c | else if (pos == inode->i_hpfs_dpos) |
inode | 1494 | fs/hpfs/hpfs_fs.c | return inode->i_hpfs_dsubdno; |
inode | 1508 | fs/hpfs/hpfs_fs.c | dno = dir_subdno(inode, q); |
inode | 1515 | fs/hpfs/hpfs_fs.c | de = map_nth_dirent(inode->i_dev, dno, r, &qbh); |
inode | 1528 | fs/hpfs/hpfs_fs.c | inode->i_hpfs_dpos = pos; |
inode | 1529 | fs/hpfs/hpfs_fs.c | inode->i_hpfs_dsubdno = dno; |
inode | 1560 | fs/hpfs/hpfs_fs.c | static int hpfs_dir_read(struct inode *inode, struct file *filp, |
inode | 15 | fs/inode.c | static struct inode * hash_table[NR_IHASH]; |
inode | 16 | fs/inode.c | static struct inode * first_inode; |
inode | 25 | fs/inode.c | static inline struct inode ** const hash(dev_t dev, int i) |
inode | 30 | fs/inode.c | static void insert_inode_free(struct inode *inode) |
inode | 32 | fs/inode.c | inode->i_next = first_inode; |
inode | 33 | fs/inode.c | inode->i_prev = first_inode->i_prev; |
inode | 34 | fs/inode.c | inode->i_next->i_prev = inode; |
inode | 35 | fs/inode.c | inode->i_prev->i_next = inode; |
inode | 36 | fs/inode.c | first_inode = inode; |
inode | 39 | fs/inode.c | static void remove_inode_free(struct inode *inode) |
inode | 41 | fs/inode.c | if (first_inode == inode) |
inode | 43 | fs/inode.c | if (inode->i_next) |
inode | 44 | fs/inode.c | inode->i_next->i_prev = inode->i_prev; |
inode | 45 | fs/inode.c | if (inode->i_prev) |
inode | 46 | fs/inode.c | inode->i_prev->i_next = inode->i_next; |
inode | 47 | fs/inode.c | inode->i_next = inode->i_prev = NULL; |
inode | 50 | fs/inode.c | void insert_inode_hash(struct inode *inode) |
inode | 52 | fs/inode.c | struct inode **h; |
inode | 53 | fs/inode.c | h = hash(inode->i_dev, inode->i_ino); |
inode | 55 | fs/inode.c | inode->i_hash_next = *h; |
inode | 56 | fs/inode.c | inode->i_hash_prev = NULL; |
inode | 57 | fs/inode.c | if (inode->i_hash_next) |
inode | 58 | fs/inode.c | inode->i_hash_next->i_hash_prev = inode; |
inode | 59 | fs/inode.c | *h = inode; |
inode | 62 | fs/inode.c | static void remove_inode_hash(struct inode *inode) |
inode | 64 | fs/inode.c | struct inode **h; |
inode | 65 | fs/inode.c | h = hash(inode->i_dev, inode->i_ino); |
inode | 67 | fs/inode.c | if (*h == inode) |
inode | 68 | fs/inode.c | *h = inode->i_hash_next; |
inode | 69 | fs/inode.c | if (inode->i_hash_next) |
inode | 70 | fs/inode.c | inode->i_hash_next->i_hash_prev = inode->i_hash_prev; |
inode | 71 | fs/inode.c | if (inode->i_hash_prev) |
inode | 72 | fs/inode.c | inode->i_hash_prev->i_hash_next = inode->i_hash_next; |
inode | 73 | fs/inode.c | inode->i_hash_prev = inode->i_hash_next = NULL; |
inode | 76 | fs/inode.c | static void put_last_free(struct inode *inode) |
inode | 78 | fs/inode.c | remove_inode_free(inode); |
inode | 79 | fs/inode.c | inode->i_prev = first_inode->i_prev; |
inode | 80 | fs/inode.c | inode->i_prev->i_next = inode; |
inode | 81 | fs/inode.c | inode->i_next = first_inode; |
inode | 82 | fs/inode.c | inode->i_next->i_prev = inode; |
inode | 87 | fs/inode.c | struct inode * inode; |
inode | 90 | fs/inode.c | if (!(inode = (struct inode*) get_free_page(GFP_KERNEL))) |
inode | 93 | fs/inode.c | i=PAGE_SIZE / sizeof(struct inode); |
inode | 98 | fs/inode.c | inode->i_next = inode->i_prev = first_inode = inode++, i--; |
inode | 101 | fs/inode.c | insert_inode_free(inode++); |
inode | 111 | fs/inode.c | static void __wait_on_inode(struct inode *); |
inode | 113 | fs/inode.c | static inline void wait_on_inode(struct inode * inode) |
inode | 115 | fs/inode.c | if (inode->i_lock) |
inode | 116 | fs/inode.c | __wait_on_inode(inode); |
inode | 119 | fs/inode.c | static inline void lock_inode(struct inode * inode) |
inode | 121 | fs/inode.c | wait_on_inode(inode); |
inode | 122 | fs/inode.c | inode->i_lock = 1; |
inode | 125 | fs/inode.c | static inline void unlock_inode(struct inode * inode) |
inode | 127 | fs/inode.c | inode->i_lock = 0; |
inode | 128 | fs/inode.c | wake_up(&inode->i_wait); |
inode | 143 | fs/inode.c | void clear_inode(struct inode * inode) |
inode | 147 | fs/inode.c | wait_on_inode(inode); |
inode | 148 | fs/inode.c | remove_inode_hash(inode); |
inode | 149 | fs/inode.c | remove_inode_free(inode); |
inode | 150 | fs/inode.c | wait = ((volatile struct inode *) inode)->i_wait; |
inode | 151 | fs/inode.c | if (inode->i_count) |
inode | 153 | fs/inode.c | memset(inode,0,sizeof(*inode)); |
inode | 154 | fs/inode.c | ((volatile struct inode *) inode)->i_wait = wait; |
inode | 155 | fs/inode.c | insert_inode_free(inode); |
inode | 160 | fs/inode.c | struct inode * inode, * next; |
inode | 165 | fs/inode.c | inode = next; |
inode | 166 | fs/inode.c | next = inode->i_next; /* clear_inode() changes the queues.. */ |
inode | 167 | fs/inode.c | if (inode->i_dev != dev) |
inode | 169 | fs/inode.c | if (inode->i_count || inode->i_dirt || inode->i_lock) |
inode | 171 | fs/inode.c | clear_inode(inode); |
inode | 176 | fs/inode.c | int fs_may_umount(dev_t dev, struct inode * mount_root) |
inode | 178 | fs/inode.c | struct inode * inode; |
inode | 181 | fs/inode.c | inode = first_inode; |
inode | 182 | fs/inode.c | for (i=0 ; i < nr_inodes ; i++, inode = inode->i_next) { |
inode | 183 | fs/inode.c | if (inode->i_dev != dev || !inode->i_count) |
inode | 185 | fs/inode.c | if (inode == mount_root && inode->i_count == 1) |
inode | 208 | fs/inode.c | static void write_inode(struct inode * inode) |
inode | 210 | fs/inode.c | if (!inode->i_dirt) |
inode | 212 | fs/inode.c | wait_on_inode(inode); |
inode | 213 | fs/inode.c | if (!inode->i_dirt) |
inode | 215 | fs/inode.c | if (!inode->i_sb || !inode->i_sb->s_op || !inode->i_sb->s_op->write_inode) { |
inode | 216 | fs/inode.c | inode->i_dirt = 0; |
inode | 219 | fs/inode.c | inode->i_lock = 1; |
inode | 220 | fs/inode.c | inode->i_sb->s_op->write_inode(inode); |
inode | 221 | fs/inode.c | unlock_inode(inode); |
inode | 224 | fs/inode.c | static void read_inode(struct inode * inode) |
inode | 226 | fs/inode.c | lock_inode(inode); |
inode | 227 | fs/inode.c | if (inode->i_sb && inode->i_sb->s_op && inode->i_sb->s_op->read_inode) |
inode | 228 | fs/inode.c | inode->i_sb->s_op->read_inode(inode); |
inode | 229 | fs/inode.c | unlock_inode(inode); |
inode | 240 | fs/inode.c | int notify_change(int flags, struct inode * inode) |
inode | 242 | fs/inode.c | if (inode->i_sb && inode->i_sb->s_op && |
inode | 243 | fs/inode.c | inode->i_sb->s_op->notify_change) |
inode | 244 | fs/inode.c | return inode->i_sb->s_op->notify_change(flags, inode); |
inode | 258 | fs/inode.c | int bmap(struct inode * inode, int block) |
inode | 260 | fs/inode.c | if (inode->i_op && inode->i_op->bmap) |
inode | 261 | fs/inode.c | return inode->i_op->bmap(inode,block); |
inode | 267 | fs/inode.c | struct inode * inode, * next; |
inode | 272 | fs/inode.c | inode = next; |
inode | 273 | fs/inode.c | next = inode->i_next; /* clear_inode() changes the queues.. */ |
inode | 274 | fs/inode.c | if (inode->i_dev != dev) |
inode | 276 | fs/inode.c | if (inode->i_count || inode->i_dirt || inode->i_lock) { |
inode | 280 | fs/inode.c | clear_inode(inode); |
inode | 287 | fs/inode.c | struct inode * inode; |
inode | 289 | fs/inode.c | inode = first_inode; |
inode | 290 | fs/inode.c | for(i = 0; i < nr_inodes*2; i++, inode = inode->i_next) { |
inode | 291 | fs/inode.c | if (dev && inode->i_dev != dev) |
inode | 293 | fs/inode.c | wait_on_inode(inode); |
inode | 294 | fs/inode.c | if (inode->i_dirt) |
inode | 295 | fs/inode.c | write_inode(inode); |
inode | 299 | fs/inode.c | void iput(struct inode * inode) |
inode | 301 | fs/inode.c | if (!inode) |
inode | 303 | fs/inode.c | wait_on_inode(inode); |
inode | 304 | fs/inode.c | if (!inode->i_count) { |
inode | 307 | fs/inode.c | MAJOR(inode->i_rdev), MINOR(inode->i_rdev), |
inode | 308 | fs/inode.c | inode->i_ino, inode->i_mode); |
inode | 311 | fs/inode.c | if (inode->i_pipe) { |
inode | 312 | fs/inode.c | wake_up(&PIPE_READ_WAIT(*inode)); |
inode | 313 | fs/inode.c | wake_up(&PIPE_WRITE_WAIT(*inode)); |
inode | 316 | fs/inode.c | if (inode->i_count>1) { |
inode | 317 | fs/inode.c | inode->i_count--; |
inode | 321 | fs/inode.c | if (inode->i_pipe) { |
inode | 322 | fs/inode.c | unsigned long page = (unsigned long) PIPE_BASE(*inode); |
inode | 323 | fs/inode.c | PIPE_BASE(*inode) = NULL; |
inode | 326 | fs/inode.c | if (inode->i_sb && inode->i_sb->s_op && inode->i_sb->s_op->put_inode) { |
inode | 327 | fs/inode.c | inode->i_sb->s_op->put_inode(inode); |
inode | 328 | fs/inode.c | if (!inode->i_nlink) |
inode | 331 | fs/inode.c | if (inode->i_dirt) { |
inode | 332 | fs/inode.c | write_inode(inode); /* we can sleep - so do again */ |
inode | 333 | fs/inode.c | wait_on_inode(inode); |
inode | 336 | fs/inode.c | inode->i_count--; |
inode | 341 | fs/inode.c | struct inode * get_empty_inode(void) |
inode | 343 | fs/inode.c | struct inode * inode, * best; |
inode | 349 | fs/inode.c | inode = first_inode; |
inode | 351 | fs/inode.c | for (i = 0; i<nr_inodes; inode = inode->i_next, i++) { |
inode | 352 | fs/inode.c | if (!inode->i_count) { |
inode | 354 | fs/inode.c | best = inode; |
inode | 355 | fs/inode.c | if (!inode->i_dirt && !inode->i_lock) { |
inode | 356 | fs/inode.c | best = inode; |
inode | 366 | fs/inode.c | inode = best; |
inode | 367 | fs/inode.c | if (!inode) { |
inode | 372 | fs/inode.c | if (inode->i_lock) { |
inode | 373 | fs/inode.c | wait_on_inode(inode); |
inode | 376 | fs/inode.c | if (inode->i_dirt) { |
inode | 377 | fs/inode.c | write_inode(inode); |
inode | 380 | fs/inode.c | if (inode->i_count) |
inode | 382 | fs/inode.c | clear_inode(inode); |
inode | 383 | fs/inode.c | inode->i_count = 1; |
inode | 384 | fs/inode.c | inode->i_nlink = 1; |
inode | 390 | fs/inode.c | return inode; |
inode | 393 | fs/inode.c | struct inode * get_pipe_inode(void) |
inode | 395 | fs/inode.c | struct inode * inode; |
inode | 398 | fs/inode.c | if (!(inode = get_empty_inode())) |
inode | 400 | fs/inode.c | if (!(PIPE_BASE(*inode) = (char*) __get_free_page(GFP_USER))) { |
inode | 401 | fs/inode.c | iput(inode); |
inode | 404 | fs/inode.c | inode->i_op = &pipe_inode_operations; |
inode | 405 | fs/inode.c | inode->i_count = 2; /* sum of readers/writers */ |
inode | 406 | fs/inode.c | PIPE_READ_WAIT(*inode) = PIPE_WRITE_WAIT(*inode) = NULL; |
inode | 407 | fs/inode.c | PIPE_HEAD(*inode) = PIPE_TAIL(*inode) = 0; |
inode | 408 | fs/inode.c | PIPE_RD_OPENERS(*inode) = PIPE_WR_OPENERS(*inode) = 0; |
inode | 409 | fs/inode.c | PIPE_READERS(*inode) = PIPE_WRITERS(*inode) = 1; |
inode | 410 | fs/inode.c | inode->i_pipe = 1; |
inode | 411 | fs/inode.c | inode->i_mode |= S_IFIFO | S_IRUSR | S_IWUSR; |
inode | 412 | fs/inode.c | inode->i_uid = current->euid; |
inode | 413 | fs/inode.c | inode->i_gid = current->egid; |
inode | 414 | fs/inode.c | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
inode | 415 | fs/inode.c | return inode; |
inode | 418 | fs/inode.c | struct inode * iget(struct super_block * sb,int nr) |
inode | 423 | fs/inode.c | struct inode * __iget(struct super_block * sb, int nr, int crossmntp) |
inode | 425 | fs/inode.c | struct inode * inode, * empty; |
inode | 431 | fs/inode.c | inode = *(hash(sb->s_dev,nr)); |
inode | 432 | fs/inode.c | while (inode) { |
inode | 433 | fs/inode.c | if (inode->i_dev != sb->s_dev || inode->i_ino != nr) { |
inode | 434 | fs/inode.c | inode = inode->i_hash_next; |
inode | 437 | fs/inode.c | wait_on_inode(inode); |
inode | 438 | fs/inode.c | if (inode->i_dev != sb->s_dev || inode->i_ino != nr) |
inode | 440 | fs/inode.c | if (!inode->i_count) |
inode | 442 | fs/inode.c | inode->i_count++; |
inode | 443 | fs/inode.c | if (crossmntp && inode->i_mount) { |
inode | 444 | fs/inode.c | struct inode * tmp = inode->i_mount; |
inode | 445 | fs/inode.c | iput(inode); |
inode | 446 | fs/inode.c | inode = tmp; |
inode | 447 | fs/inode.c | if (!inode->i_count) |
inode | 449 | fs/inode.c | inode->i_count++; |
inode | 450 | fs/inode.c | wait_on_inode(inode); |
inode | 454 | fs/inode.c | return inode; |
inode | 458 | fs/inode.c | inode = empty; |
inode | 459 | fs/inode.c | inode->i_sb = sb; |
inode | 460 | fs/inode.c | inode->i_dev = sb->s_dev; |
inode | 461 | fs/inode.c | inode->i_ino = nr; |
inode | 462 | fs/inode.c | inode->i_flags = sb->s_flags; |
inode | 463 | fs/inode.c | put_last_free(inode); |
inode | 464 | fs/inode.c | insert_inode_hash(inode); |
inode | 465 | fs/inode.c | read_inode(inode); |
inode | 466 | fs/inode.c | return inode; |
inode | 475 | fs/inode.c | static void __wait_on_inode(struct inode * inode) |
inode | 479 | fs/inode.c | add_wait_queue(&inode->i_wait, &wait); |
inode | 482 | fs/inode.c | if (inode->i_lock) { |
inode | 486 | fs/inode.c | remove_wait_queue(&inode->i_wait, &wait); |
inode | 23 | fs/isofs/dir.c | static int isofs_readdir(struct inode *, struct file *, struct dirent *, int); |
inode | 64 | fs/isofs/dir.c | static int isofs_readdir(struct inode * inode, struct file * filp, |
inode | 67 | fs/isofs/dir.c | unsigned long bufsize = ISOFS_BUFFER_SIZE(inode); |
inode | 68 | fs/isofs/dir.c | unsigned char bufbits = ISOFS_BUFFER_BITS(inode); |
inode | 79 | fs/isofs/dir.c | if (!inode || !S_ISDIR(inode->i_mode)) |
inode | 83 | fs/isofs/dir.c | block = isofs_bmap(inode,filp->f_pos>>bufbits); |
inode | 84 | fs/isofs/dir.c | if (!block || !(bh = bread(inode->i_dev,block,bufsize))) |
inode | 87 | fs/isofs/dir.c | while (filp->f_pos < inode->i_size) { |
inode | 104 | fs/isofs/dir.c | block = isofs_bmap(inode,(filp->f_pos)>>bufbits); |
inode | 106 | fs/isofs/dir.c | || !(bh = bread(inode->i_dev,block,bufsize))) |
inode | 127 | fs/isofs/dir.c | block = isofs_bmap(inode,(filp->f_pos)>> bufbits); |
inode | 129 | fs/isofs/dir.c | || !(bh = bread(inode->i_dev,block,bufsize))) |
inode | 140 | fs/isofs/dir.c | inode_number = inode->i_ino; |
inode | 151 | fs/isofs/dir.c | if((inode->i_sb->u.isofs_sb.s_firstdatazone |
inode | 152 | fs/isofs/dir.c | << bufbits) != inode->i_ino) |
inode | 153 | fs/isofs/dir.c | inode_number = inode->u.isofs_i.i_backlink; |
inode | 155 | fs/isofs/dir.c | inode_number = inode->i_ino; |
inode | 160 | fs/isofs/dir.c | isofs_lookup_grandparent(inode, |
inode | 161 | fs/isofs/dir.c | find_rock_ridge_relocation(de, inode)); |
inode | 176 | fs/isofs/dir.c | rrflag = get_rock_ridge_filename(de, &dpnt, &dlen, inode); |
inode | 188 | fs/isofs/dir.c | if(inode->i_sb->u.isofs_sb.s_mapping == 'n') |
inode | 207 | fs/isofs/dir.c | cache.dir = inode->i_ino; |
inode | 208 | fs/isofs/dir.c | cache.dev = inode->i_dev; |
inode | 32 | fs/isofs/file.c | static int isofs_file_read(struct inode *, struct file *, char *, int); |
inode | 89 | fs/isofs/file.c | static void isofs_determine_filetype(struct inode * inode) |
inode | 96 | fs/isofs/file.c | block = isofs_bmap(inode,0); |
inode | 97 | fs/isofs/file.c | if (block && (bh = bread(inode->i_dev,block, ISOFS_BUFFER_SIZE(inode)))) { |
inode | 100 | fs/isofs/file.c | for(i=0;i<(inode->i_size < ISOFS_BUFFER_SIZE(inode) ? inode->i_size : ISOFS_BUFFER_SIZE(inode)); |
inode | 110 | fs/isofs/file.c | inode->u.isofs_i.i_file_format = result; |
inode | 114 | fs/isofs/file.c | static int isofs_file_read(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 124 | fs/isofs/file.c | if (!inode) { |
inode | 128 | fs/isofs/file.c | if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode))) { |
inode | 129 | fs/isofs/file.c | printk("isofs_file_read: mode = %07o\n",inode->i_mode); |
inode | 132 | fs/isofs/file.c | if (inode->u.isofs_i.i_file_format == ISOFS_FILE_UNKNOWN) |
inode | 133 | fs/isofs/file.c | isofs_determine_filetype(inode); |
inode | 134 | fs/isofs/file.c | if (filp->f_pos > inode->i_size) |
inode | 137 | fs/isofs/file.c | left = inode->i_size - filp->f_pos; |
inode | 143 | fs/isofs/file.c | block = filp->f_pos >> ISOFS_BUFFER_BITS(inode); |
inode | 144 | fs/isofs/file.c | offset = filp->f_pos & (ISOFS_BUFFER_SIZE(inode)-1); |
inode | 145 | fs/isofs/file.c | blocks = (left + offset + ISOFS_BUFFER_SIZE(inode) - 1) / ISOFS_BUFFER_SIZE(inode); |
inode | 148 | fs/isofs/file.c | ra_blocks = read_ahead[MAJOR(inode->i_dev)] / (BLOCK_SIZE >> 9); |
inode | 149 | fs/isofs/file.c | max_block = (inode->i_size + BLOCK_SIZE - 1)/BLOCK_SIZE; |
inode | 167 | fs/isofs/file.c | *bhb = getblk(inode->i_dev,isofs_bmap(inode, block++), ISOFS_BUFFER_SIZE(inode)); |
inode | 193 | fs/isofs/file.c | *bhb = getblk(inode->i_dev,isofs_bmap(inode, block++), ISOFS_BUFFER_SIZE(inode)); |
inode | 227 | fs/isofs/file.c | if (left < ISOFS_BUFFER_SIZE(inode) - offset) |
inode | 230 | fs/isofs/file.c | chars = ISOFS_BUFFER_SIZE(inode) - offset; |
inode | 235 | fs/isofs/file.c | if (inode->u.isofs_i.i_file_format == ISOFS_FILE_TEXT || |
inode | 236 | fs/isofs/file.c | inode->u.isofs_i.i_file_format == ISOFS_FILE_TEXT_M) |
inode | 238 | fs/isofs/file.c | chars, inode->u.isofs_i.i_file_format); |
inode | 312 | fs/isofs/inode.c | int isofs_bmap(struct inode * inode,int block) |
inode | 319 | fs/isofs/inode.c | return inode->u.isofs_i.i_first_extent + block; |
inode | 322 | fs/isofs/inode.c | void isofs_read_inode(struct inode * inode) |
inode | 324 | fs/isofs/inode.c | unsigned long bufsize = ISOFS_BUFFER_SIZE(inode); |
inode | 333 | fs/isofs/inode.c | block = inode->i_ino >> ISOFS_BUFFER_BITS(inode); |
inode | 334 | fs/isofs/inode.c | if (!(bh=bread(inode->i_dev,block, bufsize))) |
inode | 338 | fs/isofs/inode.c | + (inode->i_ino & (bufsize - 1))); |
inode | 340 | fs/isofs/inode.c | high_sierra = inode->i_sb->u.isofs_sb.s_high_sierra; |
inode | 342 | fs/isofs/inode.c | if ((inode->i_ino & (bufsize - 1)) + *pnt > bufsize){ |
inode | 346 | fs/isofs/inode.c | if (!(bh = bread(inode->i_dev,++block, bufsize))) |
inode | 350 | fs/isofs/inode.c | + (inode->i_ino & (bufsize - 1))); |
inode | 354 | fs/isofs/inode.c | inode->i_mode = S_IRUGO; /* Everybody gets to read the file. */ |
inode | 355 | fs/isofs/inode.c | inode->i_nlink = 1; |
inode | 358 | fs/isofs/inode.c | inode->i_mode = S_IRUGO | S_IXUGO | S_IFDIR; |
inode | 359 | fs/isofs/inode.c | inode->i_nlink = 2; /* There are always at least 2. It is |
inode | 362 | fs/isofs/inode.c | inode->i_mode = S_IRUGO; /* Everybody gets to read the file. */ |
inode | 363 | fs/isofs/inode.c | inode->i_nlink = 1; |
inode | 364 | fs/isofs/inode.c | inode->i_mode |= S_IFREG; |
inode | 370 | fs/isofs/inode.c | inode->i_mode |= S_IXUGO; /* execute permission */ |
inode | 372 | fs/isofs/inode.c | inode->i_uid = 0; |
inode | 373 | fs/isofs/inode.c | inode->i_gid = 0; |
inode | 374 | fs/isofs/inode.c | inode->i_size = isonum_733 (raw_inode->size); |
inode | 378 | fs/isofs/inode.c | if((inode->i_size < 0 || inode->i_size > 700000000) && |
inode | 379 | fs/isofs/inode.c | inode->i_sb->u.isofs_sb.s_cruft == 'n') { |
inode | 381 | fs/isofs/inode.c | inode->i_sb->u.isofs_sb.s_cruft = 'y'; |
inode | 388 | fs/isofs/inode.c | if(inode->i_sb->u.isofs_sb.s_cruft == 'y' && |
inode | 389 | fs/isofs/inode.c | inode->i_size & 0xff000000){ |
inode | 391 | fs/isofs/inode.c | inode->i_size &= 0x00ffffff; |
inode | 400 | fs/isofs/inode.c | inode->i_size = 0; |
inode | 408 | fs/isofs/inode.c | inode->i_ino); |
inode | 415 | fs/isofs/inode.c | printk("File unit size != 0 for ISO file (%ld).\n",inode->i_ino); |
inode | 422 | fs/isofs/inode.c | inode->i_ino, raw_inode->flags[-high_sierra]); |
inode | 426 | fs/isofs/inode.c | printk("Get inode %d: %d %d: %d\n",inode->i_ino, block, |
inode | 427 | fs/isofs/inode.c | ((int)pnt) & 0x3ff, inode->i_size); |
inode | 430 | fs/isofs/inode.c | inode->i_mtime = inode->i_atime = inode->i_ctime = |
inode | 433 | fs/isofs/inode.c | inode->u.isofs_i.i_first_extent = isonum_733 (raw_inode->extent) << |
inode | 434 | fs/isofs/inode.c | (ISOFS_BLOCK_BITS - ISOFS_BUFFER_BITS(inode)); |
inode | 436 | fs/isofs/inode.c | inode->u.isofs_i.i_backlink = 0xffffffff; /* Will be used for previous directory */ |
inode | 437 | fs/isofs/inode.c | switch (inode->i_sb->u.isofs_sb.s_conversion){ |
inode | 439 | fs/isofs/inode.c | inode->u.isofs_i.i_file_format = ISOFS_FILE_UNKNOWN; /* File type */ |
inode | 442 | fs/isofs/inode.c | inode->u.isofs_i.i_file_format = ISOFS_FILE_BINARY; /* File type */ |
inode | 445 | fs/isofs/inode.c | inode->u.isofs_i.i_file_format = ISOFS_FILE_TEXT; /* File type */ |
inode | 448 | fs/isofs/inode.c | inode->u.isofs_i.i_file_format = ISOFS_FILE_TEXT_M; /* File type */ |
inode | 457 | fs/isofs/inode.c | parse_rock_ridge_inode(raw_inode, inode); |
inode | 460 | fs/isofs/inode.c | printk("Inode: %x extent: %x\n",inode->i_ino, inode->u.isofs_i.i_first_extent); |
inode | 469 | fs/isofs/inode.c | inode->i_op = NULL; |
inode | 470 | fs/isofs/inode.c | if (S_ISREG(inode->i_mode)) |
inode | 471 | fs/isofs/inode.c | inode->i_op = &isofs_file_inode_operations; |
inode | 472 | fs/isofs/inode.c | else if (S_ISDIR(inode->i_mode)) |
inode | 473 | fs/isofs/inode.c | inode->i_op = &isofs_dir_inode_operations; |
inode | 474 | fs/isofs/inode.c | else if (S_ISLNK(inode->i_mode)) |
inode | 475 | fs/isofs/inode.c | inode->i_op = &isofs_symlink_inode_operations; |
inode | 476 | fs/isofs/inode.c | else if (S_ISCHR(inode->i_mode)) |
inode | 477 | fs/isofs/inode.c | inode->i_op = &chrdev_inode_operations; |
inode | 478 | fs/isofs/inode.c | else if (S_ISBLK(inode->i_mode)) |
inode | 479 | fs/isofs/inode.c | inode->i_op = &blkdev_inode_operations; |
inode | 480 | fs/isofs/inode.c | else if (S_ISFIFO(inode->i_mode)) |
inode | 481 | fs/isofs/inode.c | init_fifo(inode); |
inode | 503 | fs/isofs/inode.c | int isofs_lookup_grandparent(struct inode * parent, int extent) |
inode | 65 | fs/isofs/namei.c | static struct buffer_head * isofs_find_entry(struct inode * dir, |
inode | 208 | fs/isofs/namei.c | int isofs_lookup(struct inode * dir,const char * name, int len, |
inode | 209 | fs/isofs/namei.c | struct inode ** result) |
inode | 84 | fs/isofs/rock.c | struct inode * inode) { |
inode | 99 | fs/isofs/rock.c | if (!inode->i_sb->u.isofs_sb.s_rock) return retval; |
inode | 149 | fs/isofs/rock.c | MAYBE_CONTINUE(repeat, inode); |
inode | 157 | fs/isofs/rock.c | char ** name, int * namlen, struct inode * inode) |
inode | 165 | fs/isofs/rock.c | if (!inode->i_sb->u.isofs_sb.s_rock) return 0; |
inode | 216 | fs/isofs/rock.c | printk("RR: RE (%x)\n", inode->i_ino); |
inode | 226 | fs/isofs/rock.c | MAYBE_CONTINUE(repeat,inode); |
inode | 240 | fs/isofs/rock.c | struct inode * inode){ |
inode | 245 | fs/isofs/rock.c | if (!inode->i_sb->u.isofs_sb.s_rock) return 0; |
inode | 251 | fs/isofs/rock.c | struct inode * reloc; |
inode | 281 | fs/isofs/rock.c | inode->i_mode = isonum_733(rr->u.PX.mode); |
inode | 282 | fs/isofs/rock.c | inode->i_nlink = isonum_733(rr->u.PX.n_links); |
inode | 283 | fs/isofs/rock.c | inode->i_uid = isonum_733(rr->u.PX.uid); |
inode | 284 | fs/isofs/rock.c | inode->i_gid = isonum_733(rr->u.PX.gid); |
inode | 290 | fs/isofs/rock.c | inode->i_rdev = ((high << 8) | (low & 0xff)) & 0xffff; |
inode | 295 | fs/isofs/rock.c | if(rr->u.TF.flags & TF_CREATE) inode->i_ctime = iso_date(rr->u.TF.times[cnt++].time, 0); |
inode | 296 | fs/isofs/rock.c | if(rr->u.TF.flags & TF_MODIFY) inode->i_mtime = iso_date(rr->u.TF.times[cnt++].time, 0); |
inode | 297 | fs/isofs/rock.c | if(rr->u.TF.flags & TF_ACCESS) inode->i_atime = iso_date(rr->u.TF.times[cnt++].time, 0); |
inode | 308 | fs/isofs/rock.c | inode->i_size += slp->len; |
inode | 311 | fs/isofs/rock.c | inode->i_size += 1; |
inode | 314 | fs/isofs/rock.c | inode->i_size += 2; |
inode | 318 | fs/isofs/rock.c | inode->i_size += 1; |
inode | 327 | fs/isofs/rock.c | if(!rootflag) inode->i_size += 1; |
inode | 336 | fs/isofs/rock.c | printk("RR CL (%x)\n",inode->i_ino); |
inode | 338 | fs/isofs/rock.c | inode->u.isofs_i.i_first_extent = isonum_733(rr->u.CL.location) << |
inode | 339 | fs/isofs/rock.c | (ISOFS_BLOCK_BITS - ISOFS_BUFFER_BITS(inode)); |
inode | 340 | fs/isofs/rock.c | reloc = iget(inode->i_sb, inode->u.isofs_i.i_first_extent << ISOFS_BUFFER_BITS(inode)); |
inode | 341 | fs/isofs/rock.c | inode->i_mode = reloc->i_mode; |
inode | 342 | fs/isofs/rock.c | inode->i_nlink = reloc->i_nlink; |
inode | 343 | fs/isofs/rock.c | inode->i_uid = reloc->i_uid; |
inode | 344 | fs/isofs/rock.c | inode->i_gid = reloc->i_gid; |
inode | 345 | fs/isofs/rock.c | inode->i_rdev = reloc->i_rdev; |
inode | 346 | fs/isofs/rock.c | inode->i_size = reloc->i_size; |
inode | 347 | fs/isofs/rock.c | inode->i_atime = reloc->i_atime; |
inode | 348 | fs/isofs/rock.c | inode->i_ctime = reloc->i_ctime; |
inode | 349 | fs/isofs/rock.c | inode->i_mtime = reloc->i_mtime; |
inode | 357 | fs/isofs/rock.c | MAYBE_CONTINUE(repeat,inode); |
inode | 368 | fs/isofs/rock.c | char * get_rock_ridge_symlink(struct inode * inode) |
inode | 370 | fs/isofs/rock.c | unsigned long bufsize = ISOFS_BUFFER_SIZE(inode); |
inode | 371 | fs/isofs/rock.c | unsigned char bufbits = ISOFS_BUFFER_BITS(inode); |
inode | 385 | fs/isofs/rock.c | if (!inode->i_sb->u.isofs_sb.s_rock) |
inode | 390 | fs/isofs/rock.c | block = inode->i_ino >> bufbits; |
inode | 391 | fs/isofs/rock.c | if (!(bh=bread(inode->i_dev,block, bufsize))) |
inode | 394 | fs/isofs/rock.c | pnt = ((unsigned char *) bh->b_data) + (inode->i_ino & (bufsize - 1)); |
inode | 398 | fs/isofs/rock.c | if ((inode->i_ino & (bufsize - 1)) + *pnt > bufsize){ |
inode | 402 | fs/isofs/rock.c | if (!(bh = bread(inode->i_dev,++block, bufsize))) |
inode | 405 | fs/isofs/rock.c | pnt = ((unsigned char *) cpnt) + (inode->i_ino & (bufsize - 1)); |
inode | 437 | fs/isofs/rock.c | rpnt = (char *) kmalloc (inode->i_size +1, GFP_KERNEL); |
inode | 470 | fs/isofs/rock.c | MAYBE_CONTINUE(repeat,inode); |
inode | 21 | fs/isofs/symlink.c | static int isofs_readlink(struct inode *, char *, int); |
inode | 22 | fs/isofs/symlink.c | static int isofs_follow_link(struct inode *, struct inode *, int, int, struct inode **); |
inode | 45 | fs/isofs/symlink.c | static int isofs_follow_link(struct inode * dir, struct inode * inode, |
inode | 46 | fs/isofs/symlink.c | int flag, int mode, struct inode ** res_inode) |
inode | 55 | fs/isofs/symlink.c | if (!inode) { |
inode | 60 | fs/isofs/symlink.c | if (!S_ISLNK(inode->i_mode)) { |
inode | 62 | fs/isofs/symlink.c | *res_inode = inode; |
inode | 66 | fs/isofs/symlink.c | !(pnt = get_rock_ridge_symlink(inode))) { |
inode | 68 | fs/isofs/symlink.c | iput(inode); |
inode | 72 | fs/isofs/symlink.c | iput(inode); |
inode | 80 | fs/isofs/symlink.c | static int isofs_readlink(struct inode * inode, char * buffer, int buflen) |
inode | 86 | fs/isofs/symlink.c | if (!S_ISLNK(inode->i_mode)) { |
inode | 87 | fs/isofs/symlink.c | iput(inode); |
inode | 93 | fs/isofs/symlink.c | pnt = get_rock_ridge_symlink(inode); |
inode | 95 | fs/isofs/symlink.c | iput(inode); |
inode | 143 | fs/minix/bitmap.c | void minix_free_inode(struct inode * inode) |
inode | 148 | fs/minix/bitmap.c | if (!inode) |
inode | 150 | fs/minix/bitmap.c | if (!inode->i_dev) { |
inode | 154 | fs/minix/bitmap.c | if (inode->i_count != 1) { |
inode | 155 | fs/minix/bitmap.c | printk("free_inode: inode has count=%d\n",inode->i_count); |
inode | 158 | fs/minix/bitmap.c | if (inode->i_nlink) { |
inode | 159 | fs/minix/bitmap.c | printk("free_inode: inode has nlink=%d\n",inode->i_nlink); |
inode | 162 | fs/minix/bitmap.c | if (!inode->i_sb) { |
inode | 166 | fs/minix/bitmap.c | if (inode->i_ino < 1 || inode->i_ino >= inode->i_sb->u.minix_sb.s_ninodes) { |
inode | 170 | fs/minix/bitmap.c | ino = inode->i_ino; |
inode | 171 | fs/minix/bitmap.c | if (!(bh=inode->i_sb->u.minix_sb.s_imap[ino >> 13])) { |
inode | 175 | fs/minix/bitmap.c | clear_inode(inode); |
inode | 181 | fs/minix/bitmap.c | struct inode * minix_new_inode(const struct inode * dir) |
inode | 184 | fs/minix/bitmap.c | struct inode * inode; |
inode | 188 | fs/minix/bitmap.c | if (!dir || !(inode = get_empty_inode())) |
inode | 191 | fs/minix/bitmap.c | inode->i_sb = sb; |
inode | 192 | fs/minix/bitmap.c | inode->i_flags = inode->i_sb->s_flags; |
inode | 195 | fs/minix/bitmap.c | if ((bh = inode->i_sb->u.minix_sb.s_imap[i]) != NULL) |
inode | 199 | fs/minix/bitmap.c | iput(inode); |
inode | 204 | fs/minix/bitmap.c | iput(inode); |
inode | 209 | fs/minix/bitmap.c | if (!j || j >= inode->i_sb->u.minix_sb.s_ninodes) { |
inode | 210 | fs/minix/bitmap.c | iput(inode); |
inode | 213 | fs/minix/bitmap.c | inode->i_count = 1; |
inode | 214 | fs/minix/bitmap.c | inode->i_nlink = 1; |
inode | 215 | fs/minix/bitmap.c | inode->i_dev = sb->s_dev; |
inode | 216 | fs/minix/bitmap.c | inode->i_uid = current->euid; |
inode | 217 | fs/minix/bitmap.c | inode->i_gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->egid; |
inode | 218 | fs/minix/bitmap.c | inode->i_dirt = 1; |
inode | 219 | fs/minix/bitmap.c | inode->i_ino = j; |
inode | 220 | fs/minix/bitmap.c | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; |
inode | 221 | fs/minix/bitmap.c | inode->i_op = NULL; |
inode | 222 | fs/minix/bitmap.c | inode->i_blocks = inode->i_blksize = 0; |
inode | 223 | fs/minix/bitmap.c | insert_inode_hash(inode); |
inode | 224 | fs/minix/bitmap.c | return inode; |
inode | 16 | fs/minix/dir.c | static int minix_dir_read(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 21 | fs/minix/dir.c | static int minix_readdir(struct inode *, struct file *, struct dirent *, int); |
inode | 57 | fs/minix/dir.c | static int minix_readdir(struct inode * inode, struct file * filp, |
inode | 66 | fs/minix/dir.c | if (!inode || !inode->i_sb || !S_ISDIR(inode->i_mode)) |
inode | 68 | fs/minix/dir.c | info = &inode->i_sb->u.minix_sb; |
inode | 71 | fs/minix/dir.c | while (filp->f_pos < inode->i_size) { |
inode | 73 | fs/minix/dir.c | bh = minix_bread(inode,(filp->f_pos)>>BLOCK_SIZE_BITS,0); |
inode | 78 | fs/minix/dir.c | while (offset < 1024 && filp->f_pos < inode->i_size) { |
inode | 82 | fs/minix/dir.c | if (de->inode) { |
inode | 89 | fs/minix/dir.c | put_fs_long(de->inode,&dirent->d_ino); |
inode | 28 | fs/minix/file.c | static int minix_file_read(struct inode *, struct file *, char *, int); |
inode | 29 | fs/minix/file.c | static int minix_file_write(struct inode *, struct file *, char *, int); |
inode | 66 | fs/minix/file.c | static int minix_file_read(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 76 | fs/minix/file.c | if (!inode) { |
inode | 80 | fs/minix/file.c | if (!S_ISREG(inode->i_mode)) { |
inode | 81 | fs/minix/file.c | printk("minix_file_read: mode = %07o\n",inode->i_mode); |
inode | 85 | fs/minix/file.c | size = inode->i_size; |
inode | 101 | fs/minix/file.c | blocks += read_ahead[MAJOR(inode->i_dev)] / (BLOCK_SIZE >> 9); |
inode | 121 | fs/minix/file.c | *bhb = minix_getblk(inode, block++, 0); |
inode | 183 | fs/minix/file.c | if (!IS_RDONLY(inode)) |
inode | 184 | fs/minix/file.c | inode->i_atime = CURRENT_TIME; |
inode | 188 | fs/minix/file.c | static int minix_file_write(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 195 | fs/minix/file.c | if (!inode) { |
inode | 199 | fs/minix/file.c | if (!S_ISREG(inode->i_mode)) { |
inode | 200 | fs/minix/file.c | printk("minix_file_write: mode = %07o\n",inode->i_mode); |
inode | 208 | fs/minix/file.c | pos = inode->i_size; |
inode | 213 | fs/minix/file.c | bh = minix_getblk(inode,pos/BLOCK_SIZE,1); |
inode | 234 | fs/minix/file.c | if (pos > inode->i_size) { |
inode | 235 | fs/minix/file.c | inode->i_size = pos; |
inode | 236 | fs/minix/file.c | inode->i_dirt = 1; |
inode | 245 | fs/minix/file.c | inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
inode | 247 | fs/minix/file.c | inode->i_dirt = 1; |
inode | 28 | fs/minix/fsync.c | static int sync_block (struct inode * inode, unsigned short * block, int wait) |
inode | 36 | fs/minix/fsync.c | bh = get_hash_table(inode->i_dev, *block, blocksize); |
inode | 57 | fs/minix/fsync.c | static int sync_iblock (struct inode * inode, unsigned short * iblock, |
inode | 67 | fs/minix/fsync.c | rc = sync_block (inode, iblock, wait); |
inode | 70 | fs/minix/fsync.c | *bh = bread(inode->i_dev, tmp, blocksize); |
inode | 82 | fs/minix/fsync.c | static int sync_direct(struct inode *inode, int wait) |
inode | 88 | fs/minix/fsync.c | rc = sync_block (inode, inode->u.minix_i.i_data + i, wait); |
inode | 97 | fs/minix/fsync.c | static int sync_indirect(struct inode *inode, unsigned short *iblock, int wait) |
inode | 103 | fs/minix/fsync.c | rc = sync_iblock (inode, iblock, &ind_bh, wait); |
inode | 108 | fs/minix/fsync.c | rc = sync_block (inode, |
inode | 120 | fs/minix/fsync.c | static int sync_dindirect(struct inode *inode, unsigned short *diblock, |
inode | 127 | fs/minix/fsync.c | rc = sync_iblock (inode, diblock, &dind_bh, wait); |
inode | 132 | fs/minix/fsync.c | rc = sync_indirect (inode, |
inode | 144 | fs/minix/fsync.c | int minix_sync_file(struct inode * inode, struct file * file) |
inode | 148 | fs/minix/fsync.c | if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || |
inode | 149 | fs/minix/fsync.c | S_ISLNK(inode->i_mode))) |
inode | 154 | fs/minix/fsync.c | err |= sync_direct(inode, wait); |
inode | 155 | fs/minix/fsync.c | err |= sync_indirect(inode, inode->u.minix_i.i_data+7, wait); |
inode | 156 | fs/minix/fsync.c | err |= sync_dindirect(inode, inode->u.minix_i.i_data+8, wait); |
inode | 158 | fs/minix/fsync.c | err |= minix_sync_inode (inode); |
inode | 19 | fs/minix/inode.c | void minix_put_inode(struct inode *inode) |
inode | 21 | fs/minix/inode.c | if (inode->i_nlink) |
inode | 23 | fs/minix/inode.c | inode->i_size = 0; |
inode | 24 | fs/minix/inode.c | minix_truncate(inode); |
inode | 25 | fs/minix/inode.c | minix_free_inode(inode); |
inode | 153 | fs/minix/inode.c | #define inode_bmap(inode,nr) ((inode)->u.minix_i.i_data[(nr)]) |
inode | 166 | fs/minix/inode.c | int minix_bmap(struct inode * inode,int block) |
inode | 179 | fs/minix/inode.c | return inode_bmap(inode,block); |
inode | 182 | fs/minix/inode.c | i = inode_bmap(inode,7); |
inode | 185 | fs/minix/inode.c | return block_bmap(bread(inode->i_dev,i,BLOCK_SIZE),block); |
inode | 188 | fs/minix/inode.c | i = inode_bmap(inode,8); |
inode | 191 | fs/minix/inode.c | i = block_bmap(bread(inode->i_dev,i,BLOCK_SIZE),block>>9); |
inode | 194 | fs/minix/inode.c | return block_bmap(bread(inode->i_dev,i,BLOCK_SIZE),block & 511); |
inode | 197 | fs/minix/inode.c | static struct buffer_head * inode_getblk(struct inode * inode, int nr, int create) |
inode | 203 | fs/minix/inode.c | p = inode->u.minix_i.i_data + nr; |
inode | 207 | fs/minix/inode.c | result = getblk(inode->i_dev, tmp, BLOCK_SIZE); |
inode | 215 | fs/minix/inode.c | tmp = minix_new_block(inode->i_sb); |
inode | 218 | fs/minix/inode.c | result = getblk(inode->i_dev, tmp, BLOCK_SIZE); |
inode | 220 | fs/minix/inode.c | minix_free_block(inode->i_sb,tmp); |
inode | 225 | fs/minix/inode.c | inode->i_ctime = CURRENT_TIME; |
inode | 226 | fs/minix/inode.c | inode->i_dirt = 1; |
inode | 230 | fs/minix/inode.c | static struct buffer_head * block_getblk(struct inode * inode, |
inode | 263 | fs/minix/inode.c | tmp = minix_new_block(inode->i_sb); |
inode | 270 | fs/minix/inode.c | minix_free_block(inode->i_sb,tmp); |
inode | 280 | fs/minix/inode.c | struct buffer_head * minix_getblk(struct inode * inode, int block, int create) |
inode | 293 | fs/minix/inode.c | return inode_getblk(inode,block,create); |
inode | 296 | fs/minix/inode.c | bh = inode_getblk(inode,7,create); |
inode | 297 | fs/minix/inode.c | return block_getblk(inode, bh, block, create); |
inode | 300 | fs/minix/inode.c | bh = inode_getblk(inode,8,create); |
inode | 301 | fs/minix/inode.c | bh = block_getblk(inode, bh, block>>9, create); |
inode | 302 | fs/minix/inode.c | return block_getblk(inode, bh, block & 511, create); |
inode | 305 | fs/minix/inode.c | struct buffer_head * minix_bread(struct inode * inode, int block, int create) |
inode | 309 | fs/minix/inode.c | bh = minix_getblk(inode,block,create); |
inode | 320 | fs/minix/inode.c | void minix_read_inode(struct inode * inode) |
inode | 326 | fs/minix/inode.c | ino = inode->i_ino; |
inode | 327 | fs/minix/inode.c | inode->i_op = NULL; |
inode | 328 | fs/minix/inode.c | inode->i_mode = 0; |
inode | 329 | fs/minix/inode.c | if (!ino || ino >= inode->i_sb->u.minix_sb.s_ninodes) { |
inode | 331 | fs/minix/inode.c | inode->i_dev, ino); |
inode | 334 | fs/minix/inode.c | block = 2 + inode->i_sb->u.minix_sb.s_imap_blocks + |
inode | 335 | fs/minix/inode.c | inode->i_sb->u.minix_sb.s_zmap_blocks + |
inode | 337 | fs/minix/inode.c | if (!(bh=bread(inode->i_dev,block, BLOCK_SIZE))) { |
inode | 339 | fs/minix/inode.c | inode->i_dev); |
inode | 344 | fs/minix/inode.c | inode->i_mode = raw_inode->i_mode; |
inode | 345 | fs/minix/inode.c | inode->i_uid = raw_inode->i_uid; |
inode | 346 | fs/minix/inode.c | inode->i_gid = raw_inode->i_gid; |
inode | 347 | fs/minix/inode.c | inode->i_nlink = raw_inode->i_nlinks; |
inode | 348 | fs/minix/inode.c | inode->i_size = raw_inode->i_size; |
inode | 349 | fs/minix/inode.c | inode->i_mtime = inode->i_atime = inode->i_ctime = raw_inode->i_time; |
inode | 350 | fs/minix/inode.c | inode->i_blocks = inode->i_blksize = 0; |
inode | 351 | fs/minix/inode.c | if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) |
inode | 352 | fs/minix/inode.c | inode->i_rdev = raw_inode->i_zone[0]; |
inode | 354 | fs/minix/inode.c | inode->u.minix_i.i_data[block] = raw_inode->i_zone[block]; |
inode | 356 | fs/minix/inode.c | if (S_ISREG(inode->i_mode)) |
inode | 357 | fs/minix/inode.c | inode->i_op = &minix_file_inode_operations; |
inode | 358 | fs/minix/inode.c | else if (S_ISDIR(inode->i_mode)) |
inode | 359 | fs/minix/inode.c | inode->i_op = &minix_dir_inode_operations; |
inode | 360 | fs/minix/inode.c | else if (S_ISLNK(inode->i_mode)) |
inode | 361 | fs/minix/inode.c | inode->i_op = &minix_symlink_inode_operations; |
inode | 362 | fs/minix/inode.c | else if (S_ISCHR(inode->i_mode)) |
inode | 363 | fs/minix/inode.c | inode->i_op = &chrdev_inode_operations; |
inode | 364 | fs/minix/inode.c | else if (S_ISBLK(inode->i_mode)) |
inode | 365 | fs/minix/inode.c | inode->i_op = &blkdev_inode_operations; |
inode | 366 | fs/minix/inode.c | else if (S_ISFIFO(inode->i_mode)) |
inode | 367 | fs/minix/inode.c | init_fifo(inode); |
inode | 370 | fs/minix/inode.c | static struct buffer_head * minix_update_inode(struct inode * inode) |
inode | 376 | fs/minix/inode.c | ino = inode->i_ino; |
inode | 377 | fs/minix/inode.c | if (!ino || ino >= inode->i_sb->u.minix_sb.s_ninodes) { |
inode | 379 | fs/minix/inode.c | inode->i_dev, ino); |
inode | 380 | fs/minix/inode.c | inode->i_dirt = 0; |
inode | 383 | fs/minix/inode.c | block = 2 + inode->i_sb->u.minix_sb.s_imap_blocks + inode->i_sb->u.minix_sb.s_zmap_blocks + |
inode | 385 | fs/minix/inode.c | if (!(bh=bread(inode->i_dev, block, BLOCK_SIZE))) { |
inode | 387 | fs/minix/inode.c | inode->i_dirt = 0; |
inode | 392 | fs/minix/inode.c | raw_inode->i_mode = inode->i_mode; |
inode | 393 | fs/minix/inode.c | raw_inode->i_uid = inode->i_uid; |
inode | 394 | fs/minix/inode.c | raw_inode->i_gid = inode->i_gid; |
inode | 395 | fs/minix/inode.c | raw_inode->i_nlinks = inode->i_nlink; |
inode | 396 | fs/minix/inode.c | raw_inode->i_size = inode->i_size; |
inode | 397 | fs/minix/inode.c | raw_inode->i_time = inode->i_mtime; |
inode | 398 | fs/minix/inode.c | if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) |
inode | 399 | fs/minix/inode.c | raw_inode->i_zone[0] = inode->i_rdev; |
inode | 401 | fs/minix/inode.c | raw_inode->i_zone[block] = inode->u.minix_i.i_data[block]; |
inode | 402 | fs/minix/inode.c | inode->i_dirt=0; |
inode | 407 | fs/minix/inode.c | void minix_write_inode(struct inode * inode) |
inode | 410 | fs/minix/inode.c | bh = minix_update_inode(inode); |
inode | 414 | fs/minix/inode.c | int minix_sync_inode(struct inode * inode) |
inode | 419 | fs/minix/inode.c | bh = minix_update_inode(inode); |
inode | 427 | fs/minix/inode.c | inode->i_dev, inode->i_ino); |
inode | 52 | fs/minix/namei.c | if (!de->inode || len > info->s_namelen) |
inode | 68 | fs/minix/namei.c | static struct buffer_head * minix_find_entry(struct inode * dir, |
inode | 111 | fs/minix/namei.c | int minix_lookup(struct inode * dir,const char * name, int len, |
inode | 112 | fs/minix/namei.c | struct inode ** result) |
inode | 129 | fs/minix/namei.c | ino = de->inode; |
inode | 149 | fs/minix/namei.c | static int minix_add_entry(struct inode * dir, |
inode | 185 | fs/minix/namei.c | de->inode = 0; |
inode | 189 | fs/minix/namei.c | if (de->inode) { |
inode | 213 | fs/minix/namei.c | int minix_create(struct inode * dir,const char * name, int len, int mode, |
inode | 214 | fs/minix/namei.c | struct inode ** result) |
inode | 217 | fs/minix/namei.c | struct inode * inode; |
inode | 224 | fs/minix/namei.c | inode = minix_new_inode(dir); |
inode | 225 | fs/minix/namei.c | if (!inode) { |
inode | 229 | fs/minix/namei.c | inode->i_op = &minix_file_inode_operations; |
inode | 230 | fs/minix/namei.c | inode->i_mode = mode; |
inode | 231 | fs/minix/namei.c | inode->i_dirt = 1; |
inode | 234 | fs/minix/namei.c | inode->i_nlink--; |
inode | 235 | fs/minix/namei.c | inode->i_dirt = 1; |
inode | 236 | fs/minix/namei.c | iput(inode); |
inode | 240 | fs/minix/namei.c | de->inode = inode->i_ino; |
inode | 244 | fs/minix/namei.c | *result = inode; |
inode | 248 | fs/minix/namei.c | int minix_mknod(struct inode * dir, const char * name, int len, int mode, int rdev) |
inode | 251 | fs/minix/namei.c | struct inode * inode; |
inode | 263 | fs/minix/namei.c | inode = minix_new_inode(dir); |
inode | 264 | fs/minix/namei.c | if (!inode) { |
inode | 268 | fs/minix/namei.c | inode->i_uid = current->euid; |
inode | 269 | fs/minix/namei.c | inode->i_mode = mode; |
inode | 270 | fs/minix/namei.c | inode->i_op = NULL; |
inode | 271 | fs/minix/namei.c | if (S_ISREG(inode->i_mode)) |
inode | 272 | fs/minix/namei.c | inode->i_op = &minix_file_inode_operations; |
inode | 273 | fs/minix/namei.c | else if (S_ISDIR(inode->i_mode)) { |
inode | 274 | fs/minix/namei.c | inode->i_op = &minix_dir_inode_operations; |
inode | 276 | fs/minix/namei.c | inode->i_mode |= S_ISGID; |
inode | 278 | fs/minix/namei.c | else if (S_ISLNK(inode->i_mode)) |
inode | 279 | fs/minix/namei.c | inode->i_op = &minix_symlink_inode_operations; |
inode | 280 | fs/minix/namei.c | else if (S_ISCHR(inode->i_mode)) |
inode | 281 | fs/minix/namei.c | inode->i_op = &chrdev_inode_operations; |
inode | 282 | fs/minix/namei.c | else if (S_ISBLK(inode->i_mode)) |
inode | 283 | fs/minix/namei.c | inode->i_op = &blkdev_inode_operations; |
inode | 284 | fs/minix/namei.c | else if (S_ISFIFO(inode->i_mode)) |
inode | 285 | fs/minix/namei.c | init_fifo(inode); |
inode | 287 | fs/minix/namei.c | inode->i_rdev = rdev; |
inode | 288 | fs/minix/namei.c | inode->i_dirt = 1; |
inode | 291 | fs/minix/namei.c | inode->i_nlink--; |
inode | 292 | fs/minix/namei.c | inode->i_dirt = 1; |
inode | 293 | fs/minix/namei.c | iput(inode); |
inode | 297 | fs/minix/namei.c | de->inode = inode->i_ino; |
inode | 301 | fs/minix/namei.c | iput(inode); |
inode | 305 | fs/minix/namei.c | int minix_mkdir(struct inode * dir, const char * name, int len, int mode) |
inode | 308 | fs/minix/namei.c | struct inode * inode; |
inode | 328 | fs/minix/namei.c | inode = minix_new_inode(dir); |
inode | 329 | fs/minix/namei.c | if (!inode) { |
inode | 333 | fs/minix/namei.c | inode->i_op = &minix_dir_inode_operations; |
inode | 334 | fs/minix/namei.c | inode->i_size = 2 * info->s_dirsize; |
inode | 335 | fs/minix/namei.c | dir_block = minix_bread(inode,0,1); |
inode | 338 | fs/minix/namei.c | inode->i_nlink--; |
inode | 339 | fs/minix/namei.c | inode->i_dirt = 1; |
inode | 340 | fs/minix/namei.c | iput(inode); |
inode | 344 | fs/minix/namei.c | de->inode=inode->i_ino; |
inode | 347 | fs/minix/namei.c | de->inode = dir->i_ino; |
inode | 349 | fs/minix/namei.c | inode->i_nlink = 2; |
inode | 352 | fs/minix/namei.c | inode->i_mode = S_IFDIR | (mode & 0777 & ~current->umask); |
inode | 354 | fs/minix/namei.c | inode->i_mode |= S_ISGID; |
inode | 355 | fs/minix/namei.c | inode->i_dirt = 1; |
inode | 359 | fs/minix/namei.c | inode->i_nlink=0; |
inode | 360 | fs/minix/namei.c | iput(inode); |
inode | 363 | fs/minix/namei.c | de->inode = inode->i_ino; |
inode | 368 | fs/minix/namei.c | iput(inode); |
inode | 376 | fs/minix/namei.c | static int empty_dir(struct inode * inode) |
inode | 383 | fs/minix/namei.c | if (!inode || !inode->i_sb) |
inode | 385 | fs/minix/namei.c | info = &inode->i_sb->u.minix_sb; |
inode | 389 | fs/minix/namei.c | if (inode->i_size & (info->s_dirsize-1)) |
inode | 391 | fs/minix/namei.c | if (inode->i_size < offset) |
inode | 393 | fs/minix/namei.c | bh = minix_bread(inode,0,0); |
inode | 397 | fs/minix/namei.c | if (!de->inode || strcmp(de->name,".")) |
inode | 400 | fs/minix/namei.c | if (!de->inode || strcmp(de->name,"..")) |
inode | 402 | fs/minix/namei.c | while (block*BLOCK_SIZE+offset < inode->i_size) { |
inode | 404 | fs/minix/namei.c | bh = minix_bread(inode,block,0); |
inode | 412 | fs/minix/namei.c | if (de->inode) { |
inode | 427 | fs/minix/namei.c | printk("Bad directory on device %04x\n",inode->i_dev); |
inode | 431 | fs/minix/namei.c | int minix_rmdir(struct inode * dir, const char * name, int len) |
inode | 434 | fs/minix/namei.c | struct inode * inode; |
inode | 438 | fs/minix/namei.c | inode = NULL; |
inode | 444 | fs/minix/namei.c | if (!(inode = iget(dir->i_sb, de->inode))) |
inode | 447 | fs/minix/namei.c | inode->i_uid != current->euid) |
inode | 449 | fs/minix/namei.c | if (inode->i_dev != dir->i_dev) |
inode | 451 | fs/minix/namei.c | if (inode == dir) /* we may not delete ".", but "../dir" is ok */ |
inode | 453 | fs/minix/namei.c | if (!S_ISDIR(inode->i_mode)) { |
inode | 457 | fs/minix/namei.c | if (!empty_dir(inode)) { |
inode | 461 | fs/minix/namei.c | if (de->inode != inode->i_ino) { |
inode | 465 | fs/minix/namei.c | if (inode->i_count > 1) { |
inode | 469 | fs/minix/namei.c | if (inode->i_nlink != 2) |
inode | 470 | fs/minix/namei.c | printk("empty directory has nlink!=2 (%d)\n",inode->i_nlink); |
inode | 471 | fs/minix/namei.c | de->inode = 0; |
inode | 473 | fs/minix/namei.c | inode->i_nlink=0; |
inode | 474 | fs/minix/namei.c | inode->i_dirt=1; |
inode | 476 | fs/minix/namei.c | inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME; |
inode | 481 | fs/minix/namei.c | iput(inode); |
inode | 486 | fs/minix/namei.c | int minix_unlink(struct inode * dir, const char * name, int len) |
inode | 489 | fs/minix/namei.c | struct inode * inode; |
inode | 495 | fs/minix/namei.c | inode = NULL; |
inode | 499 | fs/minix/namei.c | if (!(inode = iget(dir->i_sb, de->inode))) |
inode | 502 | fs/minix/namei.c | if (S_ISDIR(inode->i_mode)) |
inode | 504 | fs/minix/namei.c | if (de->inode != inode->i_ino) { |
inode | 505 | fs/minix/namei.c | iput(inode); |
inode | 512 | fs/minix/namei.c | current->euid != inode->i_uid && |
inode | 515 | fs/minix/namei.c | if (de->inode != inode->i_ino) { |
inode | 519 | fs/minix/namei.c | if (!inode->i_nlink) { |
inode | 521 | fs/minix/namei.c | inode->i_dev,inode->i_ino,inode->i_nlink); |
inode | 522 | fs/minix/namei.c | inode->i_nlink=1; |
inode | 524 | fs/minix/namei.c | de->inode = 0; |
inode | 528 | fs/minix/namei.c | inode->i_nlink--; |
inode | 529 | fs/minix/namei.c | inode->i_ctime = dir->i_ctime; |
inode | 530 | fs/minix/namei.c | inode->i_dirt = 1; |
inode | 534 | fs/minix/namei.c | iput(inode); |
inode | 539 | fs/minix/namei.c | int minix_symlink(struct inode * dir, const char * name, int len, const char * symname) |
inode | 542 | fs/minix/namei.c | struct inode * inode = NULL; |
inode | 547 | fs/minix/namei.c | if (!(inode = minix_new_inode(dir))) { |
inode | 551 | fs/minix/namei.c | inode->i_mode = S_IFLNK | 0777; |
inode | 552 | fs/minix/namei.c | inode->i_op = &minix_symlink_inode_operations; |
inode | 553 | fs/minix/namei.c | name_block = minix_bread(inode,0,1); |
inode | 556 | fs/minix/namei.c | inode->i_nlink--; |
inode | 557 | fs/minix/namei.c | inode->i_dirt = 1; |
inode | 558 | fs/minix/namei.c | iput(inode); |
inode | 567 | fs/minix/namei.c | inode->i_size = i; |
inode | 568 | fs/minix/namei.c | inode->i_dirt = 1; |
inode | 571 | fs/minix/namei.c | inode->i_nlink--; |
inode | 572 | fs/minix/namei.c | inode->i_dirt = 1; |
inode | 573 | fs/minix/namei.c | iput(inode); |
inode | 580 | fs/minix/namei.c | inode->i_nlink--; |
inode | 581 | fs/minix/namei.c | inode->i_dirt = 1; |
inode | 582 | fs/minix/namei.c | iput(inode); |
inode | 586 | fs/minix/namei.c | de->inode = inode->i_ino; |
inode | 590 | fs/minix/namei.c | iput(inode); |
inode | 594 | fs/minix/namei.c | int minix_link(struct inode * oldinode, struct inode * dir, const char * name, int len) |
inode | 623 | fs/minix/namei.c | de->inode = oldinode->i_ino; |
inode | 634 | fs/minix/namei.c | static int subdir(struct inode * new_inode, struct inode * old_inode) |
inode | 659 | fs/minix/namei.c | (((struct minix_dir_entry *) ((buffer)+info->s_dirsize))->inode) |
inode | 671 | fs/minix/namei.c | static int do_minix_rename(struct inode * old_dir, const char * old_name, int old_len, |
inode | 672 | fs/minix/namei.c | struct inode * new_dir, const char * new_name, int new_len) |
inode | 674 | fs/minix/namei.c | struct inode * old_inode, * new_inode; |
inode | 697 | fs/minix/namei.c | old_inode = __iget(old_dir->i_sb, old_de->inode,0); /* don't cross mnt-points */ |
inode | 707 | fs/minix/namei.c | new_inode = __iget(new_dir->i_sb, new_de->inode, 0); |
inode | 759 | fs/minix/namei.c | if (new_inode && (new_de->inode != new_inode->i_ino)) |
inode | 761 | fs/minix/namei.c | if (new_de->inode && !new_inode) |
inode | 763 | fs/minix/namei.c | if (old_de->inode != old_inode->i_ino) |
inode | 766 | fs/minix/namei.c | old_de->inode = 0; |
inode | 767 | fs/minix/namei.c | new_de->inode = old_inode->i_ino; |
inode | 813 | fs/minix/namei.c | int minix_rename(struct inode * old_dir, const char * old_name, int old_len, |
inode | 814 | fs/minix/namei.c | struct inode * new_dir, const char * new_name, int new_len) |
inode | 17 | fs/minix/symlink.c | static int minix_readlink(struct inode *, char *, int); |
inode | 18 | fs/minix/symlink.c | static int minix_follow_link(struct inode *, struct inode *, int, int, struct inode **); |
inode | 41 | fs/minix/symlink.c | static int minix_follow_link(struct inode * dir, struct inode * inode, |
inode | 42 | fs/minix/symlink.c | int flag, int mode, struct inode ** res_inode) |
inode | 52 | fs/minix/symlink.c | if (!inode) { |
inode | 56 | fs/minix/symlink.c | if (!S_ISLNK(inode->i_mode)) { |
inode | 58 | fs/minix/symlink.c | *res_inode = inode; |
inode | 62 | fs/minix/symlink.c | iput(inode); |
inode | 66 | fs/minix/symlink.c | if (!(bh = minix_bread(inode, 0, 0))) { |
inode | 67 | fs/minix/symlink.c | iput(inode); |
inode | 71 | fs/minix/symlink.c | iput(inode); |
inode | 79 | fs/minix/symlink.c | static int minix_readlink(struct inode * inode, char * buffer, int buflen) |
inode | 85 | fs/minix/symlink.c | if (!S_ISLNK(inode->i_mode)) { |
inode | 86 | fs/minix/symlink.c | iput(inode); |
inode | 91 | fs/minix/symlink.c | bh = minix_bread(inode, 0, 0); |
inode | 92 | fs/minix/symlink.c | iput(inode); |
inode | 27 | fs/minix/truncate.c | static int trunc_direct(struct inode * inode) |
inode | 33 | fs/minix/truncate.c | #define DIRECT_BLOCK ((inode->i_size + 1023) >> 10) |
inode | 37 | fs/minix/truncate.c | p = i + inode->u.minix_i.i_data; |
inode | 40 | fs/minix/truncate.c | bh = get_hash_table(inode->i_dev,tmp,BLOCK_SIZE); |
inode | 51 | fs/minix/truncate.c | inode->i_dirt = 1; |
inode | 53 | fs/minix/truncate.c | minix_free_block(inode->i_sb,tmp); |
inode | 58 | fs/minix/truncate.c | static int trunc_indirect(struct inode * inode, int offset, unsigned short * p) |
inode | 70 | fs/minix/truncate.c | ind_bh = bread(inode->i_dev, tmp, BLOCK_SIZE); |
inode | 89 | fs/minix/truncate.c | bh = get_hash_table(inode->i_dev,tmp,BLOCK_SIZE); |
inode | 102 | fs/minix/truncate.c | minix_free_block(inode->i_sb,tmp); |
inode | 114 | fs/minix/truncate.c | minix_free_block(inode->i_sb,tmp); |
inode | 120 | fs/minix/truncate.c | static int trunc_dindirect(struct inode * inode) |
inode | 128 | fs/minix/truncate.c | p = 8 + inode->u.minix_i.i_data; |
inode | 131 | fs/minix/truncate.c | dind_bh = bread(inode->i_dev, tmp, BLOCK_SIZE); |
inode | 147 | fs/minix/truncate.c | retry |= trunc_indirect(inode,7+512+(i<<9),dind); |
inode | 160 | fs/minix/truncate.c | inode->i_dirt = 1; |
inode | 161 | fs/minix/truncate.c | minix_free_block(inode->i_sb,tmp); |
inode | 167 | fs/minix/truncate.c | void minix_truncate(struct inode * inode) |
inode | 171 | fs/minix/truncate.c | if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || |
inode | 172 | fs/minix/truncate.c | S_ISLNK(inode->i_mode))) |
inode | 175 | fs/minix/truncate.c | retry = trunc_direct(inode); |
inode | 176 | fs/minix/truncate.c | retry |= trunc_indirect(inode,7,inode->u.minix_i.i_data+7); |
inode | 177 | fs/minix/truncate.c | retry |= trunc_dindirect(inode); |
inode | 183 | fs/minix/truncate.c | inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
inode | 184 | fs/minix/truncate.c | inode->i_dirt = 1; |
inode | 17 | fs/msdos/dir.c | static int msdos_dir_read(struct inode * inode,struct file * filp, char * buf,int count) |
inode | 22 | fs/msdos/dir.c | static int msdos_readdir(struct inode *inode,struct file *filp, |
inode | 57 | fs/msdos/dir.c | static int msdos_readdir(struct inode *inode,struct file *filp, |
inode | 65 | fs/msdos/dir.c | if (!inode || !S_ISDIR(inode->i_mode)) return -EBADF; |
inode | 66 | fs/msdos/dir.c | if (inode->i_ino == MSDOS_ROOT_INO) { |
inode | 81 | fs/msdos/dir.c | while ((ino = msdos_get_entry(inode,&filp->f_pos,&bh,&de)) > -1) { |
inode | 101 | fs/msdos/dir.c | ino = inode->i_ino; |
inode | 103 | fs/msdos/dir.c | ino = msdos_parent_ino(inode,0); |
inode | 120 | fs/msdos/fat.c | void cache_lookup(struct inode *inode,int cluster,int *f_clu,int *d_clu) |
inode | 125 | fs/msdos/fat.c | printk("cache lookup: <%d,%d> %d (%d,%d) -> ",inode->i_dev,inode->i_ino,cluster, |
inode | 129 | fs/msdos/fat.c | if (inode->i_dev == walk->device && walk->ino == inode->i_ino && |
inode | 160 | fs/msdos/fat.c | void cache_add(struct inode *inode,int f_clu,int d_clu) |
inode | 165 | fs/msdos/fat.c | printk("cache add: <%d,%d> %d (%d)\n",inode->i_dev,inode->i_ino,f_clu,d_clu); |
inode | 169 | fs/msdos/fat.c | if (inode->i_dev == walk->device && walk->ino == inode->i_ino && |
inode | 173 | fs/msdos/fat.c | cache_inval_inode(inode); |
inode | 186 | fs/msdos/fat.c | walk->device = inode->i_dev; |
inode | 187 | fs/msdos/fat.c | walk->ino = inode->i_ino; |
inode | 202 | fs/msdos/fat.c | void cache_inval_inode(struct inode *inode) |
inode | 207 | fs/msdos/fat.c | if (walk->device == inode->i_dev && walk->ino == inode->i_ino) |
inode | 221 | fs/msdos/fat.c | int get_cluster(struct inode *inode,int cluster) |
inode | 225 | fs/msdos/fat.c | if (!(nr = MSDOS_I(inode)->i_start)) return 0; |
inode | 228 | fs/msdos/fat.c | for (cache_lookup(inode,cluster,&count,&nr); count < cluster; |
inode | 230 | fs/msdos/fat.c | if ((nr = fat_access(inode->i_sb,nr,-1)) == -1) return 0; |
inode | 233 | fs/msdos/fat.c | cache_add(inode,cluster,nr); |
inode | 238 | fs/msdos/fat.c | int msdos_smap(struct inode *inode,int sector) |
inode | 243 | fs/msdos/fat.c | sb = MSDOS_SB(inode->i_sb); |
inode | 244 | fs/msdos/fat.c | if (inode->i_ino == MSDOS_ROOT_INO || (S_ISDIR(inode->i_mode) && |
inode | 245 | fs/msdos/fat.c | !MSDOS_I(inode)->i_start)) { |
inode | 251 | fs/msdos/fat.c | if (!(cluster = get_cluster(inode,cluster))) return 0; |
inode | 259 | fs/msdos/fat.c | int fat_free(struct inode *inode,int skip) |
inode | 263 | fs/msdos/fat.c | if (!(nr = MSDOS_I(inode)->i_start)) return 0; |
inode | 267 | fs/msdos/fat.c | if ((nr = fat_access(inode->i_sb,nr,-1)) == -1) return 0; |
inode | 274 | fs/msdos/fat.c | fat_access(inode->i_sb,last,MSDOS_SB(inode->i_sb)->fat_bits == |
inode | 277 | fs/msdos/fat.c | MSDOS_I(inode)->i_start = 0; |
inode | 278 | fs/msdos/fat.c | inode->i_dirt = 1; |
inode | 280 | fs/msdos/fat.c | lock_fat(inode->i_sb); |
inode | 282 | fs/msdos/fat.c | if (!(nr = fat_access(inode->i_sb,nr,0))) { |
inode | 283 | fs/msdos/fat.c | fs_panic(inode->i_sb,"fat_free: deleting beyond EOF"); |
inode | 286 | fs/msdos/fat.c | if (MSDOS_SB(inode->i_sb)->free_clusters != -1) |
inode | 287 | fs/msdos/fat.c | MSDOS_SB(inode->i_sb)->free_clusters++; |
inode | 288 | fs/msdos/fat.c | inode->i_blocks -= MSDOS_SB(inode->i_sb)->cluster_size; |
inode | 290 | fs/msdos/fat.c | unlock_fat(inode->i_sb); |
inode | 291 | fs/msdos/fat.c | cache_inval_inode(inode); |
inode | 22 | fs/msdos/file.c | static int msdos_file_read(struct inode *inode,struct file *filp,char *buf, |
inode | 24 | fs/msdos/file.c | static int msdos_file_write(struct inode *inode,struct file *filp,char *buf, |
inode | 80 | fs/msdos/file.c | static int msdos_file_read(struct inode *inode,struct file *filp,char *buf, |
inode | 90 | fs/msdos/file.c | if (!inode) { |
inode | 94 | fs/msdos/file.c | if (!S_ISREG(inode->i_mode)) { |
inode | 95 | fs/msdos/file.c | printk("msdos_file_read: mode = %07o\n",inode->i_mode); |
inode | 98 | fs/msdos/file.c | if (filp->f_pos >= inode->i_size || count <= 0) return 0; |
inode | 100 | fs/msdos/file.c | while ((left = MIN(inode->i_size-filp->f_pos,count-(buf-start))) > 0){ |
inode | 101 | fs/msdos/file.c | if (!(sector = msdos_smap(inode,filp->f_pos >> SECTOR_BITS))) |
inode | 104 | fs/msdos/file.c | if (!(bh = msdos_sread(inode->i_dev,sector,&data))) break; |
inode | 106 | fs/msdos/file.c | if (MSDOS_I(inode)->i_binary) { |
inode | 116 | fs/msdos/file.c | filp->f_pos = inode->i_size; |
inode | 119 | fs/msdos/file.c | && !IS_RDONLY(inode)) |
inode | 120 | fs/msdos/file.c | inode->i_atime |
inode | 129 | fs/msdos/file.c | if (!IS_RDONLY(inode)) |
inode | 130 | fs/msdos/file.c | inode->i_atime = CURRENT_TIME; |
inode | 135 | fs/msdos/file.c | static int msdos_file_write(struct inode *inode,struct file *filp,char *buf, |
inode | 144 | fs/msdos/file.c | if (!inode) { |
inode | 148 | fs/msdos/file.c | if (!S_ISREG(inode->i_mode)) { |
inode | 149 | fs/msdos/file.c | printk("msdos_file_write: mode = %07o\n",inode->i_mode); |
inode | 156 | fs/msdos/file.c | if (filp->f_flags & O_APPEND) filp->f_pos = inode->i_size; |
inode | 160 | fs/msdos/file.c | while (!(sector = msdos_smap(inode,filp->f_pos >> SECTOR_BITS))) |
inode | 161 | fs/msdos/file.c | if ((error = msdos_add_cluster(inode)) < 0) break; |
inode | 163 | fs/msdos/file.c | msdos_truncate(inode); |
inode | 168 | fs/msdos/file.c | if (!(bh = msdos_sread(inode->i_dev,sector,&data))) { |
inode | 172 | fs/msdos/file.c | if (MSDOS_I(inode)->i_binary) { |
inode | 199 | fs/msdos/file.c | if (filp->f_pos > inode->i_size) { |
inode | 200 | fs/msdos/file.c | inode->i_size = filp->f_pos; |
inode | 201 | fs/msdos/file.c | inode->i_dirt = 1; |
inode | 208 | fs/msdos/file.c | inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
inode | 209 | fs/msdos/file.c | MSDOS_I(inode)->i_attrs |= ATTR_ARCH; |
inode | 210 | fs/msdos/file.c | inode->i_dirt = 1; |
inode | 215 | fs/msdos/file.c | void msdos_truncate(struct inode *inode) |
inode | 219 | fs/msdos/file.c | cluster = SECTOR_SIZE*MSDOS_SB(inode->i_sb)->cluster_size; |
inode | 220 | fs/msdos/file.c | (void) fat_free(inode,(inode->i_size+(cluster-1))/cluster); |
inode | 221 | fs/msdos/file.c | MSDOS_I(inode)->i_attrs |= ATTR_ARCH; |
inode | 222 | fs/msdos/file.c | inode->i_dirt = 1; |
inode | 19 | fs/msdos/inode.c | void msdos_put_inode(struct inode *inode) |
inode | 21 | fs/msdos/inode.c | struct inode *depend; |
inode | 24 | fs/msdos/inode.c | if (inode->i_nlink) { |
inode | 25 | fs/msdos/inode.c | if (MSDOS_I(inode)->i_busy) cache_inval_inode(inode); |
inode | 28 | fs/msdos/inode.c | inode->i_size = 0; |
inode | 29 | fs/msdos/inode.c | msdos_truncate(inode); |
inode | 30 | fs/msdos/inode.c | depend = MSDOS_I(inode)->i_depend; |
inode | 31 | fs/msdos/inode.c | sb = inode->i_sb; |
inode | 32 | fs/msdos/inode.c | clear_inode(inode); |
inode | 34 | fs/msdos/inode.c | if (MSDOS_I(depend)->i_old != inode) { |
inode | 36 | fs/msdos/inode.c | (int) depend,(int) inode,(int) MSDOS_I(depend)-> |
inode | 287 | fs/msdos/inode.c | int msdos_bmap(struct inode *inode,int block) |
inode | 292 | fs/msdos/inode.c | sb = MSDOS_SB(inode->i_sb); |
inode | 294 | fs/msdos/inode.c | if (inode->i_ino == MSDOS_ROOT_INO) { |
inode | 300 | fs/msdos/inode.c | if (!(cluster = get_cluster(inode,cluster))) return 0; |
inode | 305 | fs/msdos/inode.c | void msdos_read_inode(struct inode *inode) |
inode | 312 | fs/msdos/inode.c | MSDOS_I(inode)->i_busy = 0; |
inode | 313 | fs/msdos/inode.c | MSDOS_I(inode)->i_depend = MSDOS_I(inode)->i_old = NULL; |
inode | 314 | fs/msdos/inode.c | MSDOS_I(inode)->i_binary = 1; |
inode | 315 | fs/msdos/inode.c | inode->i_uid = MSDOS_SB(inode->i_sb)->fs_uid; |
inode | 316 | fs/msdos/inode.c | inode->i_gid = MSDOS_SB(inode->i_sb)->fs_gid; |
inode | 317 | fs/msdos/inode.c | if (inode->i_ino == MSDOS_ROOT_INO) { |
inode | 318 | fs/msdos/inode.c | inode->i_mode = (S_IRWXUGO & ~MSDOS_SB(inode->i_sb)->fs_umask) | |
inode | 320 | fs/msdos/inode.c | inode->i_op = &msdos_dir_inode_operations; |
inode | 321 | fs/msdos/inode.c | inode->i_nlink = msdos_subdirs(inode)+2; |
inode | 323 | fs/msdos/inode.c | inode->i_size = MSDOS_SB(inode->i_sb)->dir_entries* |
inode | 325 | fs/msdos/inode.c | inode->i_blksize = MSDOS_SB(inode->i_sb)->cluster_size* |
inode | 327 | fs/msdos/inode.c | inode->i_blocks = (inode->i_size+inode->i_blksize-1)/ |
inode | 328 | fs/msdos/inode.c | inode->i_blksize*MSDOS_SB(inode->i_sb)->cluster_size; |
inode | 329 | fs/msdos/inode.c | MSDOS_I(inode)->i_start = 0; |
inode | 330 | fs/msdos/inode.c | MSDOS_I(inode)->i_attrs = 0; |
inode | 331 | fs/msdos/inode.c | inode->i_mtime = inode->i_atime = inode->i_ctime = 0; |
inode | 334 | fs/msdos/inode.c | if (!(bh = bread(inode->i_dev,inode->i_ino >> MSDOS_DPB_BITS, |
inode | 336 | fs/msdos/inode.c | printk("dev = 0x%04X, ino = %ld\n",inode->i_dev,inode->i_ino); |
inode | 340 | fs/msdos/inode.c | [inode->i_ino & (MSDOS_DPB-1)]; |
inode | 342 | fs/msdos/inode.c | inode->i_mode = MSDOS_MKMODE(raw_entry->attr,S_IRWXUGO & |
inode | 343 | fs/msdos/inode.c | ~MSDOS_SB(inode->i_sb)->fs_umask) | S_IFDIR; |
inode | 344 | fs/msdos/inode.c | inode->i_op = &msdos_dir_inode_operations; |
inode | 345 | fs/msdos/inode.c | MSDOS_I(inode)->i_start = CF_LE_W(raw_entry->start); |
inode | 346 | fs/msdos/inode.c | inode->i_nlink = msdos_subdirs(inode); |
inode | 349 | fs/msdos/inode.c | if (!inode->i_nlink) { |
inode | 350 | fs/msdos/inode.c | printk("directory %d: i_nlink == 0\n",inode->i_ino); |
inode | 351 | fs/msdos/inode.c | inode->i_nlink = 1; |
inode | 354 | fs/msdos/inode.c | inode->i_size = 0; |
inode | 357 | fs/msdos/inode.c | inode->i_size += SECTOR_SIZE*MSDOS_SB(inode-> |
inode | 359 | fs/msdos/inode.c | if (!(nr = fat_access(inode->i_sb,nr,-1))) { |
inode | 361 | fs/msdos/inode.c | inode->i_ino); |
inode | 367 | fs/msdos/inode.c | inode->i_mode = MSDOS_MKMODE(raw_entry->attr,(IS_NOEXEC(inode) |
inode | 368 | fs/msdos/inode.c | ? S_IRUGO|S_IWUGO : S_IRWXUGO) & ~MSDOS_SB(inode->i_sb)->fs_umask) | |
inode | 370 | fs/msdos/inode.c | inode->i_op = MSDOS_CAN_BMAP(MSDOS_SB(inode->i_sb)) ? |
inode | 373 | fs/msdos/inode.c | MSDOS_I(inode)->i_start = CF_LE_W(raw_entry->start); |
inode | 374 | fs/msdos/inode.c | inode->i_nlink = 1; |
inode | 375 | fs/msdos/inode.c | inode->i_size = CF_LE_L(raw_entry->size); |
inode | 377 | fs/msdos/inode.c | MSDOS_I(inode)->i_binary = is_binary(MSDOS_SB(inode->i_sb)->conversion, |
inode | 379 | fs/msdos/inode.c | MSDOS_I(inode)->i_attrs = raw_entry->attr & ATTR_UNUSED; |
inode | 381 | fs/msdos/inode.c | inode->i_blksize = MSDOS_SB(inode->i_sb)->cluster_size*SECTOR_SIZE; |
inode | 382 | fs/msdos/inode.c | inode->i_blocks = (inode->i_size+inode->i_blksize-1)/ |
inode | 383 | fs/msdos/inode.c | inode->i_blksize*MSDOS_SB(inode->i_sb)->cluster_size; |
inode | 384 | fs/msdos/inode.c | inode->i_mtime = inode->i_atime = inode->i_ctime = |
inode | 390 | fs/msdos/inode.c | void msdos_write_inode(struct inode *inode) |
inode | 395 | fs/msdos/inode.c | inode->i_dirt = 0; |
inode | 396 | fs/msdos/inode.c | if (inode->i_ino == MSDOS_ROOT_INO || !inode->i_nlink) return; |
inode | 397 | fs/msdos/inode.c | if (!(bh = bread(inode->i_dev,inode->i_ino >> MSDOS_DPB_BITS, |
inode | 399 | fs/msdos/inode.c | printk("dev = 0x%04X, ino = %ld\n",inode->i_dev,inode->i_ino); |
inode | 403 | fs/msdos/inode.c | [inode->i_ino & (MSDOS_DPB-1)]; |
inode | 404 | fs/msdos/inode.c | if (S_ISDIR(inode->i_mode)) { |
inode | 410 | fs/msdos/inode.c | raw_entry->size = CT_LE_L(inode->i_size); |
inode | 412 | fs/msdos/inode.c | raw_entry->attr |= MSDOS_MKATTR(inode->i_mode) | |
inode | 413 | fs/msdos/inode.c | MSDOS_I(inode)->i_attrs; |
inode | 414 | fs/msdos/inode.c | raw_entry->start = CT_LE_L(MSDOS_I(inode)->i_start); |
inode | 415 | fs/msdos/inode.c | date_unix2dos(inode->i_mtime,&raw_entry->time,&raw_entry->date); |
inode | 423 | fs/msdos/inode.c | int msdos_notify_change(int flags,struct inode *inode) |
inode | 428 | fs/msdos/inode.c | if ((flags & NOTIFY_UIDGID) && (inode->i_uid != MSDOS_SB(inode->i_sb)-> |
inode | 429 | fs/msdos/inode.c | fs_uid || inode->i_gid != MSDOS_SB(inode->i_sb)->fs_gid)) { |
inode | 430 | fs/msdos/inode.c | inode->i_uid = MSDOS_SB(inode->i_sb)->fs_uid; |
inode | 431 | fs/msdos/inode.c | inode->i_gid = MSDOS_SB(inode->i_sb)->fs_gid; |
inode | 435 | fs/msdos/inode.c | return MSDOS_SB(inode->i_sb)->quiet ? 0 : error; |
inode | 436 | fs/msdos/inode.c | if (inode->i_mode & ~MSDOS_VALID_MODE) { |
inode | 437 | fs/msdos/inode.c | inode->i_mode &= MSDOS_VALID_MODE; |
inode | 440 | fs/msdos/inode.c | if (IS_NOEXEC(inode) && !S_ISDIR(inode->i_mode)) |
inode | 441 | fs/msdos/inode.c | inode->i_mode &= S_IFMT | S_IRUGO | S_IWUGO; |
inode | 442 | fs/msdos/inode.c | else inode->i_mode |= S_IXUGO; |
inode | 443 | fs/msdos/inode.c | inode->i_mode = ((inode->i_mode & S_IFMT) | ((((inode->i_mode & S_IRWXU |
inode | 444 | fs/msdos/inode.c | & ~MSDOS_SB(inode->i_sb)->fs_umask) | S_IRUSR) >> 6)*S_IXUGO)) & |
inode | 445 | fs/msdos/inode.c | ~MSDOS_SB(inode->i_sb)->fs_umask; |
inode | 446 | fs/msdos/inode.c | return MSDOS_SB(inode->i_sb)->quiet ? 0 : error; |
inode | 109 | fs/msdos/misc.c | int msdos_add_cluster(struct inode *inode) |
inode | 115 | fs/msdos/misc.c | if (inode->i_ino == MSDOS_ROOT_INO) return -ENOSPC; |
inode | 116 | fs/msdos/misc.c | if (!MSDOS_SB(inode->i_sb)->free_clusters) return -ENOSPC; |
inode | 117 | fs/msdos/misc.c | lock_fat(inode->i_sb); |
inode | 118 | fs/msdos/misc.c | limit = MSDOS_SB(inode->i_sb)->clusters; |
inode | 121 | fs/msdos/misc.c | nr = ((count+MSDOS_SB(inode->i_sb)->prev_free) % limit)+2; |
inode | 122 | fs/msdos/misc.c | if (fat_access(inode->i_sb,nr,-1) == 0) break; |
inode | 127 | fs/msdos/misc.c | MSDOS_SB(inode->i_sb)->prev_free = (count+MSDOS_SB(inode->i_sb)-> |
inode | 130 | fs/msdos/misc.c | MSDOS_SB(inode->i_sb)->free_clusters = 0; |
inode | 131 | fs/msdos/misc.c | unlock_fat(inode->i_sb); |
inode | 134 | fs/msdos/misc.c | fat_access(inode->i_sb,nr,MSDOS_SB(inode->i_sb)->fat_bits == 12 ? |
inode | 136 | fs/msdos/misc.c | if (MSDOS_SB(inode->i_sb)->free_clusters != -1) |
inode | 137 | fs/msdos/misc.c | MSDOS_SB(inode->i_sb)->free_clusters--; |
inode | 138 | fs/msdos/misc.c | unlock_fat(inode->i_sb); |
inode | 140 | fs/msdos/misc.c | printk("set to %x\n",fat_access(inode->i_sb,nr,-1)); |
inode | 143 | fs/msdos/misc.c | if ((current = MSDOS_I(inode)->i_start) != 0) { |
inode | 144 | fs/msdos/misc.c | cache_lookup(inode,INT_MAX,&last,¤t); |
inode | 146 | fs/msdos/misc.c | if (!(current = fat_access(inode->i_sb, |
inode | 148 | fs/msdos/misc.c | fs_panic(inode->i_sb,"File without EOF"); |
inode | 155 | fs/msdos/misc.c | if (last) fat_access(inode->i_sb,last,nr); |
inode | 157 | fs/msdos/misc.c | MSDOS_I(inode)->i_start = nr; |
inode | 158 | fs/msdos/misc.c | inode->i_dirt = 1; |
inode | 161 | fs/msdos/misc.c | if (last) printk("next set to %d\n",fat_access(inode->i_sb,last,-1)); |
inode | 163 | fs/msdos/misc.c | for (current = 0; current < MSDOS_SB(inode->i_sb)->cluster_size; |
inode | 165 | fs/msdos/misc.c | sector = MSDOS_SB(inode->i_sb)->data_start+(nr-2)* |
inode | 166 | fs/msdos/misc.c | MSDOS_SB(inode->i_sb)->cluster_size+current; |
inode | 170 | fs/msdos/misc.c | if (current < MSDOS_SB(inode->i_sb)->cluster_size-1 && |
inode | 172 | fs/msdos/misc.c | if (!(bh = getblk(inode->i_dev,sector >> 1, |
inode | 182 | fs/msdos/misc.c | if (!(bh = msdos_sread(inode->i_dev,sector, |
inode | 192 | fs/msdos/misc.c | inode->i_blocks += MSDOS_SB(inode->i_sb)->cluster_size; |
inode | 193 | fs/msdos/misc.c | if (S_ISDIR(inode->i_mode)) { |
inode | 194 | fs/msdos/misc.c | if (inode->i_size & (SECTOR_SIZE-1)) { |
inode | 195 | fs/msdos/misc.c | fs_panic(inode->i_sb,"Odd directory size"); |
inode | 196 | fs/msdos/misc.c | inode->i_size = (inode->i_size+SECTOR_SIZE) & |
inode | 199 | fs/msdos/misc.c | inode->i_size += SECTOR_SIZE*MSDOS_SB(inode->i_sb)-> |
inode | 202 | fs/msdos/misc.c | printk("size is %d now (%x)\n",inode->i_size,inode); |
inode | 204 | fs/msdos/misc.c | inode->i_dirt = 1; |
inode | 267 | fs/msdos/misc.c | int msdos_get_entry(struct inode *dir, off_t *pos,struct buffer_head **bh, |
inode | 330 | fs/msdos/misc.c | inode = iget(sb,sector*MSDOS_DPS+entry); \ |
inode | 331 | fs/msdos/misc.c | if (inode) { \ |
inode | 333 | fs/msdos/misc.c | done = !MSDOS_I(inode)->i_busy; \ |
inode | 334 | fs/msdos/misc.c | iput(inode); \ |
inode | 352 | fs/msdos/misc.c | struct inode *inode; |
inode | 455 | fs/msdos/misc.c | int msdos_parent_ino(struct inode *dir,int locked) |
inode | 491 | fs/msdos/misc.c | int msdos_subdirs(struct inode *dir) |
inode | 512 | fs/msdos/misc.c | int msdos_scan(struct inode *dir,char *name,struct buffer_head **res_bh, |
inode | 93 | fs/msdos/namei.c | static int msdos_find(struct inode *dir,const char *name,int len, |
inode | 105 | fs/msdos/namei.c | int msdos_lookup(struct inode *dir,const char *name,int len, |
inode | 106 | fs/msdos/namei.c | struct inode **result) |
inode | 111 | fs/msdos/namei.c | struct inode *next; |
inode | 161 | fs/msdos/namei.c | static int msdos_create_entry(struct inode *dir,char *name,int is_dir, |
inode | 162 | fs/msdos/namei.c | struct inode **result) |
inode | 196 | fs/msdos/namei.c | int msdos_create(struct inode *dir,const char *name,int len,int mode, |
inode | 197 | fs/msdos/namei.c | struct inode **result) |
inode | 244 | fs/msdos/namei.c | int msdos_mkdir(struct inode *dir,const char *name,int len,int mode) |
inode | 248 | fs/msdos/namei.c | struct inode *inode,*dot; |
inode | 264 | fs/msdos/namei.c | if ((res = msdos_create_entry(dir,msdos_name,1,&inode)) < 0) { |
inode | 270 | fs/msdos/namei.c | inode->i_nlink = 2; /* no need to mark them dirty */ |
inode | 271 | fs/msdos/namei.c | MSDOS_I(inode)->i_busy = 1; /* prevent lookups */ |
inode | 272 | fs/msdos/namei.c | if ((res = msdos_add_cluster(inode)) < 0) goto mkdir_error; |
inode | 273 | fs/msdos/namei.c | if ((res = msdos_create_entry(inode,MSDOS_DOT,1,&dot)) < 0) |
inode | 275 | fs/msdos/namei.c | dot->i_size = inode->i_size; /* doesn't grow in the 2nd create_entry */ |
inode | 276 | fs/msdos/namei.c | MSDOS_I(dot)->i_start = MSDOS_I(inode)->i_start; |
inode | 277 | fs/msdos/namei.c | dot->i_nlink = inode->i_nlink; |
inode | 280 | fs/msdos/namei.c | if ((res = msdos_create_entry(inode,MSDOS_DOTDOT,1,&dot)) < 0) |
inode | 287 | fs/msdos/namei.c | MSDOS_I(inode)->i_busy = 0; |
inode | 289 | fs/msdos/namei.c | iput(inode); |
inode | 293 | fs/msdos/namei.c | iput(inode); |
inode | 301 | fs/msdos/namei.c | static int msdos_empty(struct inode *dir) |
inode | 326 | fs/msdos/namei.c | int msdos_rmdir(struct inode *dir,const char *name,int len) |
inode | 331 | fs/msdos/namei.c | struct inode *inode; |
inode | 334 | fs/msdos/namei.c | inode = NULL; |
inode | 340 | fs/msdos/namei.c | if (!(inode = iget(dir->i_sb,ino))) goto rmdir_done; |
inode | 342 | fs/msdos/namei.c | if (!S_ISDIR(inode->i_mode)) goto rmdir_done; |
inode | 344 | fs/msdos/namei.c | if (dir->i_dev != inode->i_dev || dir == inode) goto rmdir_done; |
inode | 345 | fs/msdos/namei.c | res = msdos_empty(inode); |
inode | 348 | fs/msdos/namei.c | inode->i_nlink = 0; |
inode | 349 | fs/msdos/namei.c | inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME; |
inode | 351 | fs/msdos/namei.c | inode->i_dirt = dir->i_dirt = 1; |
inode | 358 | fs/msdos/namei.c | iput(inode); |
inode | 363 | fs/msdos/namei.c | int msdos_unlink(struct inode *dir,const char *name,int len) |
inode | 368 | fs/msdos/namei.c | struct inode *inode; |
inode | 371 | fs/msdos/namei.c | inode = NULL; |
inode | 374 | fs/msdos/namei.c | if (!(inode = iget(dir->i_sb,ino))) { |
inode | 378 | fs/msdos/namei.c | if (!S_ISREG(inode->i_mode)) { |
inode | 382 | fs/msdos/namei.c | inode->i_nlink = 0; |
inode | 383 | fs/msdos/namei.c | inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME; |
inode | 384 | fs/msdos/namei.c | MSDOS_I(inode)->i_busy = 1; |
inode | 385 | fs/msdos/namei.c | inode->i_dirt = dir->i_dirt = 1; |
inode | 390 | fs/msdos/namei.c | iput(inode); |
inode | 396 | fs/msdos/namei.c | static int rename_same_dir(struct inode *old_dir,char *old_name, |
inode | 397 | fs/msdos/namei.c | struct inode *new_dir,char *new_name,struct buffer_head *old_bh, |
inode | 402 | fs/msdos/namei.c | struct inode *new_inode,*old_inode; |
inode | 447 | fs/msdos/namei.c | static int rename_diff_dir(struct inode *old_dir,char *old_name, |
inode | 448 | fs/msdos/namei.c | struct inode *new_dir,char *new_name,struct buffer_head *old_bh, |
inode | 453 | fs/msdos/namei.c | struct inode *old_inode,*new_inode,*free_inode,*dotdot_inode,*walk; |
inode | 566 | fs/msdos/namei.c | int msdos_rename(struct inode *old_dir,const char *old_name,int old_len, |
inode | 567 | fs/msdos/namei.c | struct inode *new_dir,const char *new_name,int new_len) |
inode | 74 | fs/namei.c | int permission(struct inode * inode,int mask) |
inode | 76 | fs/namei.c | int mode = inode->i_mode; |
inode | 78 | fs/namei.c | if (inode->i_op && inode->i_op->permission) |
inode | 79 | fs/namei.c | return inode->i_op->permission(inode, mask); |
inode | 80 | fs/namei.c | else if (current->euid == inode->i_uid) |
inode | 82 | fs/namei.c | else if (in_group_p(inode->i_gid)) |
inode | 94 | fs/namei.c | int lookup(struct inode * dir,const char * name, int len, |
inode | 95 | fs/namei.c | struct inode ** result) |
inode | 133 | fs/namei.c | int follow_link(struct inode * dir, struct inode * inode, |
inode | 134 | fs/namei.c | int flag, int mode, struct inode ** res_inode) |
inode | 136 | fs/namei.c | if (!dir || !inode) { |
inode | 138 | fs/namei.c | iput(inode); |
inode | 142 | fs/namei.c | if (!inode->i_op || !inode->i_op->follow_link) { |
inode | 144 | fs/namei.c | *res_inode = inode; |
inode | 147 | fs/namei.c | return inode->i_op->follow_link(dir,inode,flag,mode,res_inode); |
inode | 157 | fs/namei.c | struct inode * base, struct inode ** res_inode) |
inode | 162 | fs/namei.c | struct inode * inode; |
inode | 182 | fs/namei.c | error = lookup(base,thisname,len,&inode); |
inode | 187 | fs/namei.c | error = follow_link(base,inode,0,0,&base); |
inode | 201 | fs/namei.c | static int _namei(const char * pathname, struct inode * base, |
inode | 202 | fs/namei.c | int follow_links, struct inode ** res_inode) |
inode | 206 | fs/namei.c | struct inode * inode; |
inode | 213 | fs/namei.c | error = lookup(base,basename,namelen,&inode); |
inode | 219 | fs/namei.c | error = follow_link(base,inode,0,0,&inode); |
inode | 224 | fs/namei.c | *res_inode = inode; |
inode | 228 | fs/namei.c | int lnamei(const char * pathname, struct inode ** res_inode) |
inode | 248 | fs/namei.c | int namei(const char * pathname, struct inode ** res_inode) |
inode | 275 | fs/namei.c | struct inode ** res_inode, struct inode * base) |
inode | 279 | fs/namei.c | struct inode * dir, *inode; |
inode | 302 | fs/namei.c | error = lookup(dir,basename,namelen,&inode); |
inode | 334 | fs/namei.c | iput(inode); |
inode | 337 | fs/namei.c | error = follow_link(dir,inode,flag,mode,&inode); |
inode | 340 | fs/namei.c | if (S_ISDIR(inode->i_mode) && (flag & 2)) { |
inode | 341 | fs/namei.c | iput(inode); |
inode | 344 | fs/namei.c | if (!permission(inode,ACC_MODE(flag))) { |
inode | 345 | fs/namei.c | iput(inode); |
inode | 348 | fs/namei.c | if (S_ISBLK(inode->i_mode) || S_ISCHR(inode->i_mode)) { |
inode | 349 | fs/namei.c | if (IS_NODEV(inode)) { |
inode | 350 | fs/namei.c | iput(inode); |
inode | 354 | fs/namei.c | if (IS_RDONLY(inode) && (flag & 2)) { |
inode | 355 | fs/namei.c | iput(inode); |
inode | 359 | fs/namei.c | if ((inode->i_count > 1) && (flag & 2)) { |
inode | 364 | fs/namei.c | if (inode == (*p)->executable) { |
inode | 365 | fs/namei.c | iput(inode); |
inode | 371 | fs/namei.c | if (inode == mpnt->vm_inode) { |
inode | 372 | fs/namei.c | iput(inode); |
inode | 379 | fs/namei.c | inode->i_size = 0; |
inode | 380 | fs/namei.c | if (inode->i_op && inode->i_op->truncate) |
inode | 381 | fs/namei.c | inode->i_op->truncate(inode); |
inode | 382 | fs/namei.c | if ((error = notify_change(NOTIFY_SIZE, inode))) { |
inode | 383 | fs/namei.c | iput(inode); |
inode | 386 | fs/namei.c | inode->i_dirt = 1; |
inode | 388 | fs/namei.c | *res_inode = inode; |
inode | 396 | fs/namei.c | struct inode * dir; |
inode | 449 | fs/namei.c | struct inode * dir; |
inode | 490 | fs/namei.c | struct inode * dir; |
inode | 531 | fs/namei.c | struct inode * dir; |
inode | 570 | fs/namei.c | struct inode * dir; |
inode | 613 | fs/namei.c | static int do_link(struct inode * oldinode, const char * newname) |
inode | 615 | fs/namei.c | struct inode * dir; |
inode | 656 | fs/namei.c | struct inode * oldinode; |
inode | 673 | fs/namei.c | struct inode * old_dir, * new_dir; |
inode | 21 | fs/nfs/dir.c | static int nfs_dir_read(struct inode *, struct file *filp, char *buf, |
inode | 23 | fs/nfs/dir.c | static int nfs_readdir(struct inode *, struct file *, struct dirent *, int); |
inode | 24 | fs/nfs/dir.c | static int nfs_lookup(struct inode *dir, const char *name, int len, |
inode | 25 | fs/nfs/dir.c | struct inode **result); |
inode | 26 | fs/nfs/dir.c | static int nfs_create(struct inode *dir, const char *name, int len, int mode, |
inode | 27 | fs/nfs/dir.c | struct inode **result); |
inode | 28 | fs/nfs/dir.c | static int nfs_mkdir(struct inode *dir, const char *name, int len, int mode); |
inode | 29 | fs/nfs/dir.c | static int nfs_rmdir(struct inode *dir, const char *name, int len); |
inode | 30 | fs/nfs/dir.c | static int nfs_unlink(struct inode *dir, const char *name, int len); |
inode | 31 | fs/nfs/dir.c | static int nfs_symlink(struct inode *inode, const char *name, int len, |
inode | 33 | fs/nfs/dir.c | static int nfs_link(struct inode *oldinode, struct inode *dir, |
inode | 35 | fs/nfs/dir.c | static int nfs_mknod(struct inode *dir, const char *name, int len, int mode, |
inode | 37 | fs/nfs/dir.c | static int nfs_rename(struct inode *old_dir, const char *old_name, |
inode | 38 | fs/nfs/dir.c | int old_len, struct inode *new_dir, const char *new_name, |
inode | 72 | fs/nfs/dir.c | static int nfs_dir_read(struct inode *inode, struct file *filp, char *buf, |
inode | 86 | fs/nfs/dir.c | static int nfs_readdir(struct inode *inode, struct file *filp, |
inode | 98 | fs/nfs/dir.c | if (!inode || !S_ISDIR(inode->i_mode)) { |
inode | 117 | fs/nfs/dir.c | if (inode->i_dev == c_dev && inode->i_ino == c_ino) { |
inode | 134 | fs/nfs/dir.c | result = nfs_proc_readdir(NFS_SERVER(inode), NFS_FH(inode), |
inode | 141 | fs/nfs/dir.c | c_dev = inode->i_dev; |
inode | 142 | fs/nfs/dir.c | c_ino = inode->i_ino; |
inode | 176 | fs/nfs/dir.c | int inode; |
inode | 183 | fs/nfs/dir.c | static struct nfs_lookup_cache_entry *nfs_lookup_cache_index(struct inode *dir, |
inode | 191 | fs/nfs/dir.c | if (entry->dev == dir->i_dev && entry->inode == dir->i_ino |
inode | 198 | fs/nfs/dir.c | static int nfs_lookup_cache_lookup(struct inode *dir, const char *filename, |
inode | 222 | fs/nfs/dir.c | static void nfs_lookup_cache_add(struct inode *dir, const char *filename, |
inode | 239 | fs/nfs/dir.c | entry->inode = dir->i_ino; |
inode | 247 | fs/nfs/dir.c | static void nfs_lookup_cache_remove(struct inode *dir, struct inode *inode, |
inode | 255 | fs/nfs/dir.c | if (inode) { |
inode | 256 | fs/nfs/dir.c | dev = inode->i_dev; |
inode | 257 | fs/nfs/dir.c | fileid = inode->i_ino; |
inode | 272 | fs/nfs/dir.c | static void nfs_lookup_cache_refresh(struct inode *file, |
inode | 287 | fs/nfs/dir.c | static int nfs_lookup(struct inode *dir, const char *__name, int len, |
inode | 288 | fs/nfs/dir.c | struct inode **result) |
inode | 328 | fs/nfs/dir.c | static int nfs_create(struct inode *dir, const char *name, int len, int mode, |
inode | 329 | fs/nfs/dir.c | struct inode **result) |
inode | 363 | fs/nfs/dir.c | static int nfs_mknod(struct inode *dir, const char *name, int len, |
inode | 395 | fs/nfs/dir.c | static int nfs_mkdir(struct inode *dir, const char *name, int len, int mode) |
inode | 422 | fs/nfs/dir.c | static int nfs_rmdir(struct inode *dir, const char *name, int len) |
inode | 442 | fs/nfs/dir.c | static int nfs_unlink(struct inode *dir, const char *name, int len) |
inode | 462 | fs/nfs/dir.c | static int nfs_symlink(struct inode *dir, const char *name, int len, |
inode | 490 | fs/nfs/dir.c | static int nfs_link(struct inode *oldinode, struct inode *dir, |
inode | 521 | fs/nfs/dir.c | static int nfs_rename(struct inode *old_dir, const char *old_name, int old_len, |
inode | 522 | fs/nfs/dir.c | struct inode *new_dir, const char *new_name, int new_len) |
inode | 561 | fs/nfs/dir.c | void nfs_refresh_inode(struct inode *inode, struct nfs_fattr *fattr) |
inode | 565 | fs/nfs/dir.c | if (!inode || !fattr) { |
inode | 569 | fs/nfs/dir.c | if (inode->i_ino != fattr->fileid) { |
inode | 573 | fs/nfs/dir.c | was_empty = inode->i_mode == 0; |
inode | 574 | fs/nfs/dir.c | inode->i_mode = fattr->mode; |
inode | 575 | fs/nfs/dir.c | inode->i_nlink = fattr->nlink; |
inode | 576 | fs/nfs/dir.c | inode->i_uid = fattr->uid; |
inode | 577 | fs/nfs/dir.c | inode->i_gid = fattr->gid; |
inode | 578 | fs/nfs/dir.c | inode->i_size = fattr->size; |
inode | 579 | fs/nfs/dir.c | inode->i_blksize = fattr->blocksize; |
inode | 580 | fs/nfs/dir.c | if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) |
inode | 581 | fs/nfs/dir.c | inode->i_rdev = fattr->rdev; |
inode | 583 | fs/nfs/dir.c | inode->i_rdev = 0; |
inode | 584 | fs/nfs/dir.c | inode->i_blocks = fattr->blocks; |
inode | 585 | fs/nfs/dir.c | inode->i_atime = fattr->atime.seconds; |
inode | 586 | fs/nfs/dir.c | inode->i_mtime = fattr->mtime.seconds; |
inode | 587 | fs/nfs/dir.c | inode->i_ctime = fattr->ctime.seconds; |
inode | 589 | fs/nfs/dir.c | if (S_ISREG(inode->i_mode)) |
inode | 590 | fs/nfs/dir.c | inode->i_op = &nfs_file_inode_operations; |
inode | 591 | fs/nfs/dir.c | else if (S_ISDIR(inode->i_mode)) |
inode | 592 | fs/nfs/dir.c | inode->i_op = &nfs_dir_inode_operations; |
inode | 593 | fs/nfs/dir.c | else if (S_ISLNK(inode->i_mode)) |
inode | 594 | fs/nfs/dir.c | inode->i_op = &nfs_symlink_inode_operations; |
inode | 595 | fs/nfs/dir.c | else if (S_ISCHR(inode->i_mode)) |
inode | 596 | fs/nfs/dir.c | inode->i_op = &chrdev_inode_operations; |
inode | 597 | fs/nfs/dir.c | else if (S_ISBLK(inode->i_mode)) |
inode | 598 | fs/nfs/dir.c | inode->i_op = &blkdev_inode_operations; |
inode | 599 | fs/nfs/dir.c | else if (S_ISFIFO(inode->i_mode)) |
inode | 600 | fs/nfs/dir.c | init_fifo(inode); |
inode | 602 | fs/nfs/dir.c | inode->i_op = NULL; |
inode | 604 | fs/nfs/dir.c | nfs_lookup_cache_refresh(inode, fattr); |
inode | 21 | fs/nfs/file.c | static int nfs_file_read(struct inode *, struct file *, char *, int); |
inode | 22 | fs/nfs/file.c | static int nfs_file_write(struct inode *, struct file *, char *, int); |
inode | 23 | fs/nfs/file.c | static int nfs_fsync(struct inode *, struct file *); |
inode | 24 | fs/nfs/file.c | extern int nfs_mmap(struct inode * inode, struct file * file, |
inode | 57 | fs/nfs/file.c | static int nfs_fsync(struct inode *inode, struct file *file) |
inode | 62 | fs/nfs/file.c | static int nfs_file_read(struct inode *inode, struct file *file, char *buf, |
inode | 73 | fs/nfs/file.c | if (!inode) { |
inode | 77 | fs/nfs/file.c | if (!S_ISREG(inode->i_mode)) { |
inode | 79 | fs/nfs/file.c | inode->i_mode); |
inode | 83 | fs/nfs/file.c | if (file->f_pos + count > inode->i_size) |
inode | 84 | fs/nfs/file.c | count = inode->i_size - pos; |
inode | 87 | fs/nfs/file.c | n = NFS_SERVER(inode)->rsize; |
inode | 93 | fs/nfs/file.c | result = nfs_proc_read(NFS_SERVER(inode), NFS_FH(inode), |
inode | 109 | fs/nfs/file.c | nfs_refresh_inode(inode, &fattr); |
inode | 113 | fs/nfs/file.c | static int nfs_file_write(struct inode *inode, struct file *file, char *buf, |
inode | 124 | fs/nfs/file.c | if (!inode) { |
inode | 128 | fs/nfs/file.c | if (!S_ISREG(inode->i_mode)) { |
inode | 130 | fs/nfs/file.c | inode->i_mode); |
inode | 137 | fs/nfs/file.c | pos = inode->i_size; |
inode | 138 | fs/nfs/file.c | n = NFS_SERVER(inode)->wsize; |
inode | 145 | fs/nfs/file.c | result = nfs_proc_write(NFS_SERVER(inode), NFS_FH(inode), |
inode | 160 | fs/nfs/file.c | nfs_refresh_inode(inode, &fattr); |
inode | 23 | fs/nfs/inode.c | static int nfs_notify_change(int, struct inode *); |
inode | 24 | fs/nfs/inode.c | static void nfs_put_inode(struct inode *); |
inode | 39 | fs/nfs/inode.c | static void nfs_put_inode(struct inode * inode) |
inode | 41 | fs/nfs/inode.c | clear_inode(inode); |
inode | 161 | fs/nfs/inode.c | struct inode *nfs_fhget(struct super_block *sb, struct nfs_fh *fhandle, |
inode | 166 | fs/nfs/inode.c | struct inode *inode; |
inode | 181 | fs/nfs/inode.c | if (!(inode = iget(sb, fattr->fileid))) { |
inode | 185 | fs/nfs/inode.c | if (inode->i_dev == sb->s_dev) { |
inode | 186 | fs/nfs/inode.c | if (inode->i_ino != fattr->fileid) { |
inode | 188 | fs/nfs/inode.c | return inode; |
inode | 190 | fs/nfs/inode.c | *NFS_FH(inode) = *fhandle; |
inode | 191 | fs/nfs/inode.c | nfs_refresh_inode(inode, fattr); |
inode | 193 | fs/nfs/inode.c | return inode; |
inode | 196 | fs/nfs/inode.c | int nfs_notify_change(int flags, struct inode *inode) |
inode | 203 | fs/nfs/inode.c | sattr.mode = inode->i_mode; |
inode | 207 | fs/nfs/inode.c | sattr.uid = inode->i_uid; |
inode | 208 | fs/nfs/inode.c | sattr.gid = inode->i_gid; |
inode | 213 | fs/nfs/inode.c | sattr.size = S_ISREG(inode->i_mode) ? inode->i_size : -1; |
inode | 217 | fs/nfs/inode.c | sattr.mtime.seconds = inode->i_mtime; |
inode | 219 | fs/nfs/inode.c | sattr.atime.seconds = inode->i_atime; |
inode | 226 | fs/nfs/inode.c | error = nfs_proc_setattr(NFS_SERVER(inode), NFS_FH(inode), |
inode | 229 | fs/nfs/inode.c | nfs_refresh_inode(inode, &fattr); |
inode | 230 | fs/nfs/inode.c | inode->i_dirt = 0; |
inode | 27 | fs/nfs/mmap.c | struct inode * inode, unsigned long address, unsigned long error_code, |
inode | 51 | fs/nfs/mmap.c | int nfs_mmap(struct inode * inode, struct file * file, |
inode | 58 | fs/nfs/mmap.c | if (off & (inode->i_sb->s_blocksize - 1)) |
inode | 60 | fs/nfs/mmap.c | if (!inode->i_sb || !S_ISREG(inode->i_mode)) |
inode | 62 | fs/nfs/mmap.c | if (!IS_RDONLY(inode)) { |
inode | 63 | fs/nfs/mmap.c | inode->i_atime = CURRENT_TIME; |
inode | 64 | fs/nfs/mmap.c | inode->i_dirt = 1; |
inode | 77 | fs/nfs/mmap.c | mpnt->vm_inode = inode; |
inode | 78 | fs/nfs/mmap.c | inode->i_count++; |
inode | 90 | fs/nfs/mmap.c | struct inode * inode = area->vm_inode; |
inode | 103 | fs/nfs/mmap.c | if (share_page(area, area->vm_task, inode, address, error_code, page)) { |
inode | 120 | fs/nfs/mmap.c | n = NFS_SERVER(inode)->rsize; /* what we can read in one go */ |
inode | 128 | fs/nfs/mmap.c | result = nfs_proc_read(NFS_SERVER(inode), NFS_FH(inode), |
inode | 140 | fs/nfs/mmap.c | nfs_refresh_inode(inode, &fattr); |
inode | 144 | fs/nfs/mmap.c | if (share_page(area, area->vm_task, inode, address, error_code, page)) |
inode | 20 | fs/nfs/sock.c | extern struct socket *socki_lookup(struct inode *inode); |
inode | 37 | fs/nfs/sock.c | struct inode *inode; |
inode | 45 | fs/nfs/sock.c | int (*select) (struct inode *, struct file *, int, select_table *); |
inode | 58 | fs/nfs/sock.c | inode = file->f_inode; |
inode | 60 | fs/nfs/sock.c | sock = socki_lookup(inode); |
inode | 93 | fs/nfs/sock.c | if (!select(inode, file, SEL_IN, &wait_table) |
inode | 94 | fs/nfs/sock.c | && !select(inode, file, SEL_IN, NULL)) { |
inode | 18 | fs/nfs/symlink.c | static int nfs_readlink(struct inode *, char *, int); |
inode | 19 | fs/nfs/symlink.c | static int nfs_follow_link(struct inode *, struct inode *, int, int, |
inode | 20 | fs/nfs/symlink.c | struct inode **); |
inode | 43 | fs/nfs/symlink.c | static int nfs_follow_link(struct inode *dir, struct inode *inode, |
inode | 44 | fs/nfs/symlink.c | int flag, int mode, struct inode **res_inode) |
inode | 54 | fs/nfs/symlink.c | if (!inode) { |
inode | 58 | fs/nfs/symlink.c | if (!S_ISLNK(inode->i_mode)) { |
inode | 60 | fs/nfs/symlink.c | *res_inode = inode; |
inode | 64 | fs/nfs/symlink.c | iput(inode); |
inode | 69 | fs/nfs/symlink.c | error = nfs_proc_readlink(NFS_SERVER(inode), NFS_FH(inode), res); |
inode | 71 | fs/nfs/symlink.c | iput(inode); |
inode | 76 | fs/nfs/symlink.c | iput(inode); |
inode | 84 | fs/nfs/symlink.c | static int nfs_readlink(struct inode *inode, char *buffer, int buflen) |
inode | 91 | fs/nfs/symlink.c | if (!S_ISLNK(inode->i_mode)) { |
inode | 92 | fs/nfs/symlink.c | iput(inode); |
inode | 98 | fs/nfs/symlink.c | error = nfs_proc_readlink(NFS_SERVER(inode), NFS_FH(inode), res); |
inode | 99 | fs/nfs/symlink.c | iput(inode); |
inode | 31 | fs/open.c | struct inode * inode; |
inode | 37 | fs/open.c | error = namei(path,&inode); |
inode | 40 | fs/open.c | if (!inode->i_sb->s_op->statfs) { |
inode | 41 | fs/open.c | iput(inode); |
inode | 44 | fs/open.c | inode->i_sb->s_op->statfs(inode->i_sb, buf); |
inode | 45 | fs/open.c | iput(inode); |
inode | 51 | fs/open.c | struct inode * inode; |
inode | 60 | fs/open.c | if (!(inode = file->f_inode)) |
inode | 62 | fs/open.c | if (!inode->i_sb->s_op->statfs) |
inode | 64 | fs/open.c | inode->i_sb->s_op->statfs(inode->i_sb, buf); |
inode | 70 | fs/open.c | struct inode * inode; |
inode | 73 | fs/open.c | error = namei(path,&inode); |
inode | 76 | fs/open.c | if (S_ISDIR(inode->i_mode) || !permission(inode,MAY_WRITE)) { |
inode | 77 | fs/open.c | iput(inode); |
inode | 80 | fs/open.c | if (IS_RDONLY(inode)) { |
inode | 81 | fs/open.c | iput(inode); |
inode | 84 | fs/open.c | inode->i_size = length; |
inode | 85 | fs/open.c | if (inode->i_op && inode->i_op->truncate) |
inode | 86 | fs/open.c | inode->i_op->truncate(inode); |
inode | 87 | fs/open.c | inode->i_ctime = inode->i_mtime = CURRENT_TIME; |
inode | 88 | fs/open.c | inode->i_dirt = 1; |
inode | 89 | fs/open.c | error = notify_change(NOTIFY_SIZE, inode); |
inode | 90 | fs/open.c | iput(inode); |
inode | 96 | fs/open.c | struct inode * inode; |
inode | 101 | fs/open.c | if (!(inode = file->f_inode)) |
inode | 103 | fs/open.c | if (S_ISDIR(inode->i_mode) || !(file->f_mode & 2)) |
inode | 105 | fs/open.c | inode->i_size = length; |
inode | 106 | fs/open.c | if (inode->i_op && inode->i_op->truncate) |
inode | 107 | fs/open.c | inode->i_op->truncate(inode); |
inode | 108 | fs/open.c | inode->i_ctime = inode->i_mtime = CURRENT_TIME; |
inode | 109 | fs/open.c | inode->i_dirt = 1; |
inode | 110 | fs/open.c | return notify_change(NOTIFY_SIZE, inode); |
inode | 119 | fs/open.c | struct inode * inode; |
inode | 123 | fs/open.c | error = namei(filename,&inode); |
inode | 126 | fs/open.c | if (IS_RDONLY(inode)) { |
inode | 127 | fs/open.c | iput(inode); |
inode | 131 | fs/open.c | if ((current->euid != inode->i_uid) && !suser()) { |
inode | 132 | fs/open.c | iput(inode); |
inode | 137 | fs/open.c | inode->i_ctime = CURRENT_TIME; |
inode | 139 | fs/open.c | if ((current->euid != inode->i_uid) && |
inode | 140 | fs/open.c | !permission(inode,MAY_WRITE)) { |
inode | 141 | fs/open.c | iput(inode); |
inode | 144 | fs/open.c | actime = modtime = inode->i_ctime = CURRENT_TIME; |
inode | 146 | fs/open.c | inode->i_atime = actime; |
inode | 147 | fs/open.c | inode->i_mtime = modtime; |
inode | 148 | fs/open.c | inode->i_dirt = 1; |
inode | 149 | fs/open.c | error = notify_change(NOTIFY_TIME, inode); |
inode | 150 | fs/open.c | iput(inode); |
inode | 160 | fs/open.c | struct inode * inode; |
inode | 165 | fs/open.c | res = namei(filename,&inode); |
inode | 168 | fs/open.c | i_mode = inode->i_mode; |
inode | 170 | fs/open.c | if (current->uid == inode->i_uid) |
inode | 172 | fs/open.c | else if (in_group_p(inode->i_gid)) |
inode | 174 | fs/open.c | iput(inode); |
inode | 194 | fs/open.c | struct inode * inode; |
inode | 197 | fs/open.c | error = namei(filename,&inode); |
inode | 200 | fs/open.c | if (!S_ISDIR(inode->i_mode)) { |
inode | 201 | fs/open.c | iput(inode); |
inode | 204 | fs/open.c | if (!permission(inode,MAY_EXEC)) { |
inode | 205 | fs/open.c | iput(inode); |
inode | 209 | fs/open.c | current->pwd = inode; |
inode | 215 | fs/open.c | struct inode * inode; |
inode | 218 | fs/open.c | error = namei(filename,&inode); |
inode | 221 | fs/open.c | if (!S_ISDIR(inode->i_mode)) { |
inode | 222 | fs/open.c | iput(inode); |
inode | 226 | fs/open.c | iput(inode); |
inode | 230 | fs/open.c | current->root = inode; |
inode | 236 | fs/open.c | struct inode * inode; |
inode | 241 | fs/open.c | if (!(inode = file->f_inode)) |
inode | 243 | fs/open.c | if ((current->euid != inode->i_uid) && !suser()) |
inode | 245 | fs/open.c | if (IS_RDONLY(inode)) |
inode | 247 | fs/open.c | inode->i_mode = (mode & S_IALLUGO) | (inode->i_mode & ~S_IALLUGO); |
inode | 248 | fs/open.c | if (!suser() && !in_group_p(inode->i_gid)) |
inode | 249 | fs/open.c | inode->i_mode &= ~S_ISGID; |
inode | 250 | fs/open.c | inode->i_ctime = CURRENT_TIME; |
inode | 251 | fs/open.c | inode->i_dirt = 1; |
inode | 252 | fs/open.c | return notify_change(NOTIFY_MODE, inode); |
inode | 257 | fs/open.c | struct inode * inode; |
inode | 260 | fs/open.c | error = namei(filename,&inode); |
inode | 263 | fs/open.c | if ((current->euid != inode->i_uid) && !suser()) { |
inode | 264 | fs/open.c | iput(inode); |
inode | 267 | fs/open.c | if (IS_RDONLY(inode)) { |
inode | 268 | fs/open.c | iput(inode); |
inode | 271 | fs/open.c | inode->i_mode = (mode & S_IALLUGO) | (inode->i_mode & ~S_IALLUGO); |
inode | 272 | fs/open.c | if (!suser() && !in_group_p(inode->i_gid)) |
inode | 273 | fs/open.c | inode->i_mode &= ~S_ISGID; |
inode | 274 | fs/open.c | inode->i_ctime = CURRENT_TIME; |
inode | 275 | fs/open.c | inode->i_dirt = 1; |
inode | 276 | fs/open.c | error = notify_change(NOTIFY_MODE, inode); |
inode | 277 | fs/open.c | iput(inode); |
inode | 283 | fs/open.c | struct inode * inode; |
inode | 288 | fs/open.c | if (!(inode = file->f_inode)) |
inode | 290 | fs/open.c | if (IS_RDONLY(inode)) |
inode | 293 | fs/open.c | user = inode->i_uid; |
inode | 295 | fs/open.c | group = inode->i_gid; |
inode | 296 | fs/open.c | if ((current->euid == inode->i_uid && user == inode->i_uid && |
inode | 297 | fs/open.c | (in_group_p(group) || group == inode->i_gid)) || |
inode | 299 | fs/open.c | inode->i_uid = user; |
inode | 300 | fs/open.c | inode->i_gid = group; |
inode | 301 | fs/open.c | inode->i_ctime = CURRENT_TIME; |
inode | 302 | fs/open.c | inode->i_dirt = 1; |
inode | 303 | fs/open.c | return notify_change(NOTIFY_UIDGID, inode); |
inode | 310 | fs/open.c | struct inode * inode; |
inode | 313 | fs/open.c | error = lnamei(filename,&inode); |
inode | 316 | fs/open.c | if (IS_RDONLY(inode)) { |
inode | 317 | fs/open.c | iput(inode); |
inode | 321 | fs/open.c | user = inode->i_uid; |
inode | 323 | fs/open.c | group = inode->i_gid; |
inode | 324 | fs/open.c | if ((current->euid == inode->i_uid && user == inode->i_uid && |
inode | 325 | fs/open.c | (in_group_p(group) || group == inode->i_gid)) || |
inode | 327 | fs/open.c | inode->i_uid = user; |
inode | 328 | fs/open.c | inode->i_gid = group; |
inode | 329 | fs/open.c | inode->i_ctime = CURRENT_TIME; |
inode | 330 | fs/open.c | inode->i_dirt = 1; |
inode | 331 | fs/open.c | error = notify_change(NOTIFY_UIDGID, inode); |
inode | 332 | fs/open.c | iput(inode); |
inode | 335 | fs/open.c | iput(inode); |
inode | 355 | fs/open.c | struct inode * inode; |
inode | 375 | fs/open.c | error = open_namei(filename,flag,mode,&inode,NULL); |
inode | 382 | fs/open.c | f->f_inode = inode; |
inode | 386 | fs/open.c | if (inode->i_op) |
inode | 387 | fs/open.c | f->f_op = inode->i_op->default_file_ops; |
inode | 389 | fs/open.c | error = f->f_op->open(inode,f); |
inode | 391 | fs/open.c | iput(inode); |
inode | 421 | fs/open.c | struct inode *inode; |
inode | 427 | fs/open.c | inode = filp->f_inode; |
inode | 428 | fs/open.c | if (inode && S_ISREG(inode->i_mode)) |
inode | 435 | fs/open.c | filp->f_op->release(inode,filp); |
inode | 438 | fs/open.c | iput(inode); |
inode | 16 | fs/pipe.c | static int pipe_read(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 21 | fs/pipe.c | while (!PIPE_SIZE(*inode)) { |
inode | 22 | fs/pipe.c | wake_up(& PIPE_WRITE_WAIT(*inode)); |
inode | 23 | fs/pipe.c | if (!PIPE_WRITERS(*inode)) /* are there any writers? */ |
inode | 27 | fs/pipe.c | interruptible_sleep_on(& PIPE_READ_WAIT(*inode)); |
inode | 29 | fs/pipe.c | while (count>0 && (size = PIPE_SIZE(*inode))) { |
inode | 30 | fs/pipe.c | chars = PAGE_SIZE-PIPE_TAIL(*inode); |
inode | 35 | fs/pipe.c | memcpy_tofs(buf, PIPE_BASE(*inode)+PIPE_TAIL(*inode), chars ); |
inode | 37 | fs/pipe.c | PIPE_TAIL(*inode) += chars; |
inode | 38 | fs/pipe.c | PIPE_TAIL(*inode) &= (PAGE_SIZE-1); |
inode | 42 | fs/pipe.c | wake_up(& PIPE_WRITE_WAIT(*inode)); |
inode | 45 | fs/pipe.c | if (PIPE_WRITERS(*inode)) |
inode | 50 | fs/pipe.c | static int pipe_write(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 54 | fs/pipe.c | if (!PIPE_READERS(*inode)) { /* no readers */ |
inode | 64 | fs/pipe.c | while (PIPE_SIZE(*inode) >= size) { |
inode | 65 | fs/pipe.c | if (!PIPE_READERS(*inode)) { /* no readers */ |
inode | 74 | fs/pipe.c | interruptible_sleep_on(&PIPE_WRITE_WAIT(*inode)); |
inode | 76 | fs/pipe.c | while (count>0 && (size = (PAGE_SIZE-1)-PIPE_SIZE(*inode))) { |
inode | 77 | fs/pipe.c | chars = PAGE_SIZE-PIPE_HEAD(*inode); |
inode | 82 | fs/pipe.c | memcpy_fromfs(PIPE_BASE(*inode)+PIPE_HEAD(*inode), buf, chars ); |
inode | 84 | fs/pipe.c | PIPE_HEAD(*inode) += chars; |
inode | 85 | fs/pipe.c | PIPE_HEAD(*inode) &= (PAGE_SIZE-1); |
inode | 89 | fs/pipe.c | wake_up(& PIPE_READ_WAIT(*inode)); |
inode | 95 | fs/pipe.c | static int pipe_lseek(struct inode * inode, struct file * file, off_t offset, int orig) |
inode | 100 | fs/pipe.c | static int pipe_readdir(struct inode * inode, struct file * file, struct dirent * de, int count) |
inode | 105 | fs/pipe.c | static int bad_pipe_rw(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 110 | fs/pipe.c | static int pipe_ioctl(struct inode *pino, struct file * filp, |
inode | 126 | fs/pipe.c | static int pipe_select(struct inode * inode, struct file * filp, int sel_type, select_table * wait) |
inode | 130 | fs/pipe.c | if (!PIPE_EMPTY(*inode) || !PIPE_WRITERS(*inode)) |
inode | 132 | fs/pipe.c | select_wait(&PIPE_READ_WAIT(*inode), wait); |
inode | 135 | fs/pipe.c | if (!PIPE_FULL(*inode) || !PIPE_READERS(*inode)) |
inode | 137 | fs/pipe.c | select_wait(&PIPE_WRITE_WAIT(*inode), wait); |
inode | 140 | fs/pipe.c | if (!PIPE_READERS(*inode) || !PIPE_WRITERS(*inode)) |
inode | 142 | fs/pipe.c | select_wait(&inode->i_wait,wait); |
inode | 152 | fs/pipe.c | static int fifo_select(struct inode * inode, struct file * filp, int sel_type, select_table * wait) |
inode | 156 | fs/pipe.c | if (!PIPE_EMPTY(*inode)) |
inode | 158 | fs/pipe.c | select_wait(&PIPE_READ_WAIT(*inode), wait); |
inode | 161 | fs/pipe.c | if (!PIPE_FULL(*inode) || !PIPE_READERS(*inode)) |
inode | 163 | fs/pipe.c | select_wait(&PIPE_WRITE_WAIT(*inode), wait); |
inode | 166 | fs/pipe.c | if (!PIPE_READERS(*inode) || !PIPE_WRITERS(*inode)) |
inode | 168 | fs/pipe.c | select_wait(&inode->i_wait,wait); |
inode | 179 | fs/pipe.c | static int connect_read(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 181 | fs/pipe.c | while (!PIPE_SIZE(*inode)) { |
inode | 182 | fs/pipe.c | if (PIPE_WRITERS(*inode)) |
inode | 186 | fs/pipe.c | wake_up(& PIPE_WRITE_WAIT(*inode)); |
inode | 189 | fs/pipe.c | interruptible_sleep_on(& PIPE_READ_WAIT(*inode)); |
inode | 192 | fs/pipe.c | return pipe_read(inode,filp,buf,count); |
inode | 195 | fs/pipe.c | static int connect_select(struct inode * inode, struct file * filp, int sel_type, select_table * wait) |
inode | 199 | fs/pipe.c | if (!PIPE_EMPTY(*inode)) { |
inode | 203 | fs/pipe.c | select_wait(&PIPE_READ_WAIT(*inode), wait); |
inode | 206 | fs/pipe.c | if (!PIPE_FULL(*inode)) |
inode | 208 | fs/pipe.c | select_wait(&PIPE_WRITE_WAIT(*inode), wait); |
inode | 211 | fs/pipe.c | if (!PIPE_READERS(*inode) || !PIPE_WRITERS(*inode)) |
inode | 213 | fs/pipe.c | select_wait(&inode->i_wait,wait); |
inode | 223 | fs/pipe.c | static void pipe_read_release(struct inode * inode, struct file * filp) |
inode | 225 | fs/pipe.c | PIPE_READERS(*inode)--; |
inode | 226 | fs/pipe.c | wake_up(&PIPE_WRITE_WAIT(*inode)); |
inode | 229 | fs/pipe.c | static void pipe_write_release(struct inode * inode, struct file * filp) |
inode | 231 | fs/pipe.c | PIPE_WRITERS(*inode)--; |
inode | 232 | fs/pipe.c | wake_up(&PIPE_READ_WAIT(*inode)); |
inode | 235 | fs/pipe.c | static void pipe_rdwr_release(struct inode * inode, struct file * filp) |
inode | 237 | fs/pipe.c | PIPE_READERS(*inode)--; |
inode | 238 | fs/pipe.c | PIPE_WRITERS(*inode)--; |
inode | 239 | fs/pipe.c | wake_up(&PIPE_READ_WAIT(*inode)); |
inode | 240 | fs/pipe.c | wake_up(&PIPE_WRITE_WAIT(*inode)); |
inode | 358 | fs/pipe.c | struct inode * inode; |
inode | 386 | fs/pipe.c | if (!(inode=get_pipe_inode())) { |
inode | 393 | fs/pipe.c | f[0]->f_inode = f[1]->f_inode = inode; |
inode | 30 | fs/proc/array.c | static int read_core(struct inode * inode, struct file * file,char * buf, int count) |
inode | 416 | fs/proc/array.c | static int array_read(struct inode * inode, struct file * file,char * buf, int count) |
inode | 427 | fs/proc/array.c | type = inode->i_ino; |
inode | 462 | fs/proc/array.c | return read_core(inode, file, buf, count); |
inode | 16 | fs/proc/base.c | static int proc_readbase(struct inode *, struct file *, struct dirent *, int); |
inode | 17 | fs/proc/base.c | static int proc_lookupbase(struct inode *,const char *,int,struct inode **); |
inode | 91 | fs/proc/base.c | static int proc_lookupbase(struct inode * dir,const char * name, int len, |
inode | 92 | fs/proc/base.c | struct inode ** result) |
inode | 132 | fs/proc/base.c | static int proc_readbase(struct inode * inode, struct file * filp, |
inode | 139 | fs/proc/base.c | if (!inode || !S_ISDIR(inode->i_mode)) |
inode | 141 | fs/proc/base.c | ino = inode->i_ino; |
inode | 16 | fs/proc/fd.c | static int proc_readfd(struct inode *, struct file *, struct dirent *, int); |
inode | 17 | fs/proc/fd.c | static int proc_lookupfd(struct inode *,const char *,int,struct inode **); |
inode | 53 | fs/proc/fd.c | static int proc_lookupfd(struct inode * dir,const char * name, int len, |
inode | 54 | fs/proc/fd.c | struct inode ** result) |
inode | 126 | fs/proc/fd.c | static int proc_readfd(struct inode * inode, struct file * filp, |
inode | 133 | fs/proc/fd.c | if (!inode || !S_ISDIR(inode->i_mode)) |
inode | 135 | fs/proc/fd.c | ino = inode->i_ino; |
inode | 147 | fs/proc/fd.c | fd = inode->i_ino; |
inode | 149 | fs/proc/fd.c | fd = (inode->i_ino & 0xffff0000) | 2; |
inode | 19 | fs/proc/inode.c | void proc_put_inode(struct inode *inode) |
inode | 21 | fs/proc/inode.c | if (inode->i_nlink) |
inode | 23 | fs/proc/inode.c | inode->i_size = 0; |
inode | 74 | fs/proc/inode.c | void proc_read_inode(struct inode * inode) |
inode | 80 | fs/proc/inode.c | inode->i_op = NULL; |
inode | 81 | fs/proc/inode.c | inode->i_mode = 0; |
inode | 82 | fs/proc/inode.c | inode->i_uid = 0; |
inode | 83 | fs/proc/inode.c | inode->i_gid = 0; |
inode | 84 | fs/proc/inode.c | inode->i_nlink = 1; |
inode | 85 | fs/proc/inode.c | inode->i_size = 0; |
inode | 86 | fs/proc/inode.c | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; |
inode | 87 | fs/proc/inode.c | inode->i_blocks = inode->i_blksize = 0; |
inode | 88 | fs/proc/inode.c | ino = inode->i_ino; |
inode | 97 | fs/proc/inode.c | inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO; |
inode | 98 | fs/proc/inode.c | inode->i_nlink = 2; |
inode | 101 | fs/proc/inode.c | inode->i_nlink++; |
inode | 102 | fs/proc/inode.c | inode->i_op = &proc_root_inode_operations; |
inode | 106 | fs/proc/inode.c | inode->i_mode = S_IFREG | S_IRUGO; |
inode | 107 | fs/proc/inode.c | inode->i_op = &proc_net_inode_operations; |
inode | 113 | fs/proc/inode.c | inode->i_mode = S_IFREG | S_IRUGO; |
inode | 114 | fs/proc/inode.c | inode->i_op = &proc_kmsg_inode_operations; |
inode | 117 | fs/proc/inode.c | inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO; |
inode | 118 | fs/proc/inode.c | inode->i_nlink = 2; |
inode | 119 | fs/proc/inode.c | inode->i_op = &proc_net_inode_operations; |
inode | 122 | fs/proc/inode.c | inode->i_mode = S_IFREG | S_IRUSR; |
inode | 123 | fs/proc/inode.c | inode->i_op = &proc_array_inode_operations; |
inode | 124 | fs/proc/inode.c | inode->i_size = high_memory + PAGE_SIZE; |
inode | 127 | fs/proc/inode.c | inode->i_mode = S_IFREG | S_IRUGO; |
inode | 128 | fs/proc/inode.c | inode->i_op = &proc_array_inode_operations; |
inode | 134 | fs/proc/inode.c | inode->i_uid = p->euid; |
inode | 135 | fs/proc/inode.c | inode->i_gid = p->egid; |
inode | 138 | fs/proc/inode.c | inode->i_nlink = 4; |
inode | 139 | fs/proc/inode.c | inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO; |
inode | 140 | fs/proc/inode.c | inode->i_op = &proc_base_inode_operations; |
inode | 143 | fs/proc/inode.c | inode->i_op = &proc_mem_inode_operations; |
inode | 144 | fs/proc/inode.c | inode->i_mode = S_IFREG | S_IRUSR | S_IWUSR; |
inode | 149 | fs/proc/inode.c | inode->i_op = &proc_link_inode_operations; |
inode | 150 | fs/proc/inode.c | inode->i_size = 64; |
inode | 151 | fs/proc/inode.c | inode->i_mode = S_IFLNK | S_IRWXU; |
inode | 155 | fs/proc/inode.c | inode->i_mode = S_IFDIR | S_IRUSR | S_IXUSR; |
inode | 156 | fs/proc/inode.c | inode->i_op = &proc_fd_inode_operations; |
inode | 157 | fs/proc/inode.c | inode->i_nlink = 2; |
inode | 164 | fs/proc/inode.c | inode->i_mode = S_IFREG | S_IRUGO; |
inode | 165 | fs/proc/inode.c | inode->i_op = &proc_array_inode_operations; |
inode | 173 | fs/proc/inode.c | inode->i_op = &proc_link_inode_operations; |
inode | 174 | fs/proc/inode.c | inode->i_size = 64; |
inode | 175 | fs/proc/inode.c | inode->i_mode = S_IFLNK | S_IRWXU; |
inode | 188 | fs/proc/inode.c | inode->i_op = &proc_link_inode_operations; |
inode | 189 | fs/proc/inode.c | inode->i_size = 64; |
inode | 190 | fs/proc/inode.c | inode->i_mode = S_IFLNK | S_IRWXU; |
inode | 196 | fs/proc/inode.c | void proc_write_inode(struct inode * inode) |
inode | 198 | fs/proc/inode.c | inode->i_dirt=0; |
inode | 22 | fs/proc/kmsg.c | static int kmsg_open(struct inode * inode, struct file * file) |
inode | 27 | fs/proc/kmsg.c | static void kmsg_release(struct inode * inode, struct file * file) |
inode | 32 | fs/proc/kmsg.c | static int kmsg_read(struct inode * inode, struct file * file,char * buf, int count) |
inode | 37 | fs/proc/kmsg.c | static int kmsg_select(struct inode *inode, struct file *file, int sel_type, select_table * wait) |
inode | 17 | fs/proc/link.c | static int proc_readlink(struct inode *, char *, int); |
inode | 18 | fs/proc/link.c | static int proc_follow_link(struct inode *, struct inode *, int, int, struct inode **); |
inode | 41 | fs/proc/link.c | static int proc_follow_link(struct inode * dir, struct inode * inode, |
inode | 42 | fs/proc/link.c | int flag, int mode, struct inode ** res_inode) |
inode | 51 | fs/proc/link.c | if (!inode) |
inode | 53 | fs/proc/link.c | ino = inode->i_ino; |
inode | 56 | fs/proc/link.c | iput(inode); |
inode | 62 | fs/proc/link.c | inode = NULL; |
inode | 65 | fs/proc/link.c | inode = p->pwd; |
inode | 68 | fs/proc/link.c | inode = p->root; |
inode | 71 | fs/proc/link.c | inode = p->executable; |
inode | 78 | fs/proc/link.c | inode = p->filp[ino]->f_inode; |
inode | 88 | fs/proc/link.c | inode = mpnt->vm_inode; |
inode | 97 | fs/proc/link.c | if (!inode) |
inode | 99 | fs/proc/link.c | *res_inode = inode; |
inode | 100 | fs/proc/link.c | inode->i_count++; |
inode | 104 | fs/proc/link.c | static int proc_readlink(struct inode * inode, char * buffer, int buflen) |
inode | 110 | fs/proc/link.c | i = proc_follow_link(NULL, inode, 0, 0, &inode); |
inode | 113 | fs/proc/link.c | if (!inode) |
inode | 115 | fs/proc/link.c | dev = inode->i_dev; |
inode | 116 | fs/proc/link.c | ino = inode->i_ino; |
inode | 117 | fs/proc/link.c | iput(inode); |
inode | 23 | fs/proc/mem.c | static int mem_read(struct inode * inode, struct file * file,char * buf, int count) |
inode | 32 | fs/proc/mem.c | pid = inode->i_ino; |
inode | 71 | fs/proc/mem.c | static int mem_write(struct inode * inode, struct file * file,char * buf, int count) |
inode | 81 | fs/proc/mem.c | pid = inode->i_ino; |
inode | 127 | fs/proc/mem.c | static int mem_lseek(struct inode * inode, struct file * file, off_t offset, int orig) |
inode | 31 | fs/proc/net.c | static int proc_readnet(struct inode * inode, struct file * file, |
inode | 33 | fs/proc/net.c | static int proc_readnetdir(struct inode *, struct file *, |
inode | 35 | fs/proc/net.c | static int proc_lookupnet(struct inode *,const char *,int,struct inode **); |
inode | 101 | fs/proc/net.c | static int proc_lookupnet(struct inode * dir,const char * name, int len, |
inode | 102 | fs/proc/net.c | struct inode ** result) |
inode | 130 | fs/proc/net.c | static int proc_readnetdir(struct inode * inode, struct file * filp, |
inode | 137 | fs/proc/net.c | if (!inode || !S_ISDIR(inode->i_mode)) |
inode | 139 | fs/proc/net.c | ino = inode->i_ino; |
inode | 157 | fs/proc/net.c | static int proc_readnet(struct inode * inode, struct file * file, |
inode | 169 | fs/proc/net.c | ino = inode->i_ino; |
inode | 17 | fs/proc/root.c | static int proc_readroot(struct inode *, struct file *, struct dirent *, int); |
inode | 18 | fs/proc/root.c | static int proc_lookuproot(struct inode *,const char *,int,struct inode **); |
inode | 72 | fs/proc/root.c | static int proc_lookuproot(struct inode * dir,const char * name, int len, |
inode | 73 | fs/proc/root.c | struct inode ** result) |
inode | 129 | fs/proc/root.c | static int proc_readroot(struct inode * inode, struct file * filp, |
inode | 136 | fs/proc/root.c | if (!inode || !S_ISDIR(inode->i_mode)) |
inode | 23 | fs/read_write.c | struct inode * inode; |
inode | 26 | fs/read_write.c | !(inode = file->f_inode)) |
inode | 32 | fs/read_write.c | error = file->f_op->readdir(inode,file,dirent,count); |
inode | 74 | fs/read_write.c | struct inode * inode; |
inode | 76 | fs/read_write.c | if (fd>=NR_OPEN || !(file=current->filp[fd]) || !(inode=file->f_inode)) |
inode | 87 | fs/read_write.c | return file->f_op->read(inode,file,buf,count); |
inode | 94 | fs/read_write.c | struct inode * inode; |
inode | 96 | fs/read_write.c | if (fd>=NR_OPEN || !(file=current->filp[fd]) || !(inode=file->f_inode)) |
inode | 107 | fs/read_write.c | return file->f_op->write(inode,file,buf,count); |
inode | 65 | fs/select.c | struct inode * inode; |
inode | 67 | fs/select.c | int (*select) (struct inode *, struct file *, int, select_table *); |
inode | 69 | fs/select.c | inode = file->f_inode; |
inode | 71 | fs/select.c | return select(inode, file, flag, wait) |
inode | 72 | fs/select.c | || (wait && select(inode, file, flag, NULL)); |
inode | 73 | fs/select.c | if (S_ISREG(inode->i_mode)) |
inode | 14 | fs/stat.c | static void cp_old_stat(struct inode * inode, struct old_stat * statbuf) |
inode | 20 | fs/stat.c | tmp.st_dev = inode->i_dev; |
inode | 21 | fs/stat.c | tmp.st_ino = inode->i_ino; |
inode | 22 | fs/stat.c | tmp.st_mode = inode->i_mode; |
inode | 23 | fs/stat.c | tmp.st_nlink = inode->i_nlink; |
inode | 24 | fs/stat.c | tmp.st_uid = inode->i_uid; |
inode | 25 | fs/stat.c | tmp.st_gid = inode->i_gid; |
inode | 26 | fs/stat.c | tmp.st_rdev = inode->i_rdev; |
inode | 27 | fs/stat.c | tmp.st_size = inode->i_size; |
inode | 28 | fs/stat.c | tmp.st_atime = inode->i_atime; |
inode | 29 | fs/stat.c | tmp.st_mtime = inode->i_mtime; |
inode | 30 | fs/stat.c | tmp.st_ctime = inode->i_ctime; |
inode | 34 | fs/stat.c | static void cp_new_stat(struct inode * inode, struct new_stat * statbuf) |
inode | 39 | fs/stat.c | tmp.st_dev = inode->i_dev; |
inode | 40 | fs/stat.c | tmp.st_ino = inode->i_ino; |
inode | 41 | fs/stat.c | tmp.st_mode = inode->i_mode; |
inode | 42 | fs/stat.c | tmp.st_nlink = inode->i_nlink; |
inode | 43 | fs/stat.c | tmp.st_uid = inode->i_uid; |
inode | 44 | fs/stat.c | tmp.st_gid = inode->i_gid; |
inode | 45 | fs/stat.c | tmp.st_rdev = inode->i_rdev; |
inode | 46 | fs/stat.c | tmp.st_size = inode->i_size; |
inode | 47 | fs/stat.c | tmp.st_atime = inode->i_atime; |
inode | 48 | fs/stat.c | tmp.st_mtime = inode->i_mtime; |
inode | 49 | fs/stat.c | tmp.st_ctime = inode->i_ctime; |
inode | 68 | fs/stat.c | if (!inode->i_blksize) { |
inode | 83 | fs/stat.c | tmp.st_blocks = inode->i_blocks; |
inode | 84 | fs/stat.c | tmp.st_blksize = inode->i_blksize; |
inode | 91 | fs/stat.c | struct inode * inode; |
inode | 97 | fs/stat.c | error = namei(filename,&inode); |
inode | 100 | fs/stat.c | cp_old_stat(inode,statbuf); |
inode | 101 | fs/stat.c | iput(inode); |
inode | 107 | fs/stat.c | struct inode * inode; |
inode | 113 | fs/stat.c | error = namei(filename,&inode); |
inode | 116 | fs/stat.c | cp_new_stat(inode,statbuf); |
inode | 117 | fs/stat.c | iput(inode); |
inode | 123 | fs/stat.c | struct inode * inode; |
inode | 129 | fs/stat.c | error = lnamei(filename,&inode); |
inode | 132 | fs/stat.c | cp_old_stat(inode,statbuf); |
inode | 133 | fs/stat.c | iput(inode); |
inode | 139 | fs/stat.c | struct inode * inode; |
inode | 145 | fs/stat.c | error = lnamei(filename,&inode); |
inode | 148 | fs/stat.c | cp_new_stat(inode,statbuf); |
inode | 149 | fs/stat.c | iput(inode); |
inode | 156 | fs/stat.c | struct inode * inode; |
inode | 162 | fs/stat.c | if (fd >= NR_OPEN || !(f=current->filp[fd]) || !(inode=f->f_inode)) |
inode | 164 | fs/stat.c | cp_old_stat(inode,statbuf); |
inode | 171 | fs/stat.c | struct inode * inode; |
inode | 177 | fs/stat.c | if (fd >= NR_OPEN || !(f=current->filp[fd]) || !(inode=f->f_inode)) |
inode | 179 | fs/stat.c | cp_new_stat(inode,statbuf); |
inode | 185 | fs/stat.c | struct inode * inode; |
inode | 193 | fs/stat.c | error = lnamei(path,&inode); |
inode | 196 | fs/stat.c | if (!inode->i_op || !inode->i_op->readlink) { |
inode | 197 | fs/stat.c | iput(inode); |
inode | 200 | fs/stat.c | return inode->i_op->readlink(inode,buf,bufsiz); |
inode | 250 | fs/super.c | struct inode * inode; |
inode | 253 | fs/super.c | struct inode dummy_inode; |
inode | 258 | fs/super.c | retval = namei(name,&inode); |
inode | 260 | fs/super.c | retval = lnamei(name,&inode); |
inode | 264 | fs/super.c | if (S_ISBLK(inode->i_mode)) { |
inode | 265 | fs/super.c | dev = inode->i_rdev; |
inode | 266 | fs/super.c | if (IS_NODEV(inode)) { |
inode | 267 | fs/super.c | iput(inode); |
inode | 271 | fs/super.c | if (!inode || !inode->i_sb || inode != inode->i_sb->s_mounted) { |
inode | 272 | fs/super.c | iput(inode); |
inode | 275 | fs/super.c | dev = inode->i_sb->s_dev; |
inode | 276 | fs/super.c | iput(inode); |
inode | 279 | fs/super.c | inode = &dummy_inode; |
inode | 282 | fs/super.c | iput(inode); |
inode | 288 | fs/super.c | fops->release(inode,NULL); |
inode | 292 | fs/super.c | if (inode != &dummy_inode) |
inode | 293 | fs/super.c | iput(inode); |
inode | 311 | fs/super.c | struct inode * dir_i; |
inode | 367 | fs/super.c | struct inode *dir_i; |
inode | 399 | fs/super.c | struct inode * inode; |
inode | 427 | fs/super.c | retval = namei(dev_name,&inode); |
inode | 430 | fs/super.c | if (!S_ISBLK(inode->i_mode)) { |
inode | 431 | fs/super.c | iput(inode); |
inode | 434 | fs/super.c | if (IS_NODEV(inode)) { |
inode | 435 | fs/super.c | iput(inode); |
inode | 438 | fs/super.c | dev = inode->i_rdev; |
inode | 440 | fs/super.c | iput(inode); |
inode | 446 | fs/super.c | inode = NULL; |
inode | 450 | fs/super.c | retval = fops->open(inode,NULL); |
inode | 452 | fs/super.c | iput(inode); |
inode | 463 | fs/super.c | iput(inode); |
inode | 474 | fs/super.c | iput(inode); |
inode | 483 | fs/super.c | fops->release(inode,NULL); |
inode | 484 | fs/super.c | iput(inode); |
inode | 492 | fs/super.c | struct inode * inode; |
inode | 505 | fs/super.c | inode = sb->s_mounted; |
inode | 506 | fs/super.c | inode->i_count += 3 ; /* NOTE! it is logically used 4 times, not 1 */ |
inode | 507 | fs/super.c | sb->s_covered = inode; |
inode | 509 | fs/super.c | current->pwd = inode; |
inode | 510 | fs/super.c | current->root = inode; |
inode | 285 | fs/xiafs/bitmap.c | void xiafs_free_inode(struct inode * inode) |
inode | 291 | fs/xiafs/bitmap.c | if (!inode) |
inode | 293 | fs/xiafs/bitmap.c | if (!inode->i_dev || inode->i_count!=1 || inode->i_nlink || !inode->i_sb || |
inode | 294 | fs/xiafs/bitmap.c | inode->i_ino < 3 || inode->i_ino > inode->i_sb->u.xiafs_sb.s_ninodes) { |
inode | 298 | fs/xiafs/bitmap.c | sb = inode->i_sb; |
inode | 299 | fs/xiafs/bitmap.c | ino = inode->i_ino; |
inode | 303 | fs/xiafs/bitmap.c | clear_inode(inode); |
inode | 307 | fs/xiafs/bitmap.c | inode->i_dev, ino, ino, WHERE_ERR); |
inode | 312 | fs/xiafs/bitmap.c | struct inode * xiafs_new_inode(struct inode * dir) |
inode | 315 | fs/xiafs/bitmap.c | struct inode * inode; |
inode | 319 | fs/xiafs/bitmap.c | if (!dir || !(inode = get_empty_inode())) |
inode | 321 | fs/xiafs/bitmap.c | inode->i_sb = sb; |
inode | 322 | fs/xiafs/bitmap.c | inode->i_flags = inode->i_sb->s_flags; |
inode | 326 | fs/xiafs/bitmap.c | iput(inode); |
inode | 329 | fs/xiafs/bitmap.c | inode->i_count = 1; |
inode | 330 | fs/xiafs/bitmap.c | inode->i_nlink = 1; |
inode | 331 | fs/xiafs/bitmap.c | inode->i_dev = sb->s_dev; |
inode | 332 | fs/xiafs/bitmap.c | inode->i_uid = current->euid; |
inode | 333 | fs/xiafs/bitmap.c | inode->i_gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->egid; |
inode | 334 | fs/xiafs/bitmap.c | inode->i_dirt = 1; |
inode | 335 | fs/xiafs/bitmap.c | inode->i_ino = tmp; |
inode | 336 | fs/xiafs/bitmap.c | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; |
inode | 337 | fs/xiafs/bitmap.c | inode->i_op = NULL; |
inode | 338 | fs/xiafs/bitmap.c | inode->i_blocks = 0; |
inode | 339 | fs/xiafs/bitmap.c | inode->i_blksize = XIAFS_ZSIZE(inode->i_sb); |
inode | 340 | fs/xiafs/bitmap.c | insert_inode_hash(inode); |
inode | 341 | fs/xiafs/bitmap.c | return inode; |
inode | 22 | fs/xiafs/dir.c | static int xiafs_dir_read(struct inode *, struct file *, char *, int); |
inode | 23 | fs/xiafs/dir.c | static int xiafs_readdir(struct inode *, struct file *, struct dirent *, int); |
inode | 59 | fs/xiafs/dir.c | static int xiafs_dir_read(struct inode * inode, |
inode | 65 | fs/xiafs/dir.c | static int xiafs_readdir(struct inode * inode, |
inode | 72 | fs/xiafs/dir.c | if (!inode || !inode->i_sb || !S_ISDIR(inode->i_mode)) |
inode | 74 | fs/xiafs/dir.c | if (inode->i_size & (XIAFS_ZSIZE(inode->i_sb) - 1) ) |
inode | 76 | fs/xiafs/dir.c | while (filp->f_pos < inode->i_size) { |
inode | 77 | fs/xiafs/dir.c | offset = filp->f_pos & (XIAFS_ZSIZE(inode->i_sb) - 1); |
inode | 78 | fs/xiafs/dir.c | bh = xiafs_bread(inode, filp->f_pos >> XIAFS_ZSIZE_BITS(inode->i_sb),0); |
inode | 80 | fs/xiafs/dir.c | filp->f_pos += XIAFS_ZSIZE(inode->i_sb)-offset; |
inode | 84 | fs/xiafs/dir.c | while (offset < XIAFS_ZSIZE(inode->i_sb) && filp->f_pos < inode->i_size) { |
inode | 85 | fs/xiafs/dir.c | if (de->d_ino > inode->i_sb->u.xiafs_sb.s_ninodes || |
inode | 87 | fs/xiafs/dir.c | (char *)de+de->d_rec_len > XIAFS_ZSIZE(inode->i_sb)+bh->b_data || |
inode | 104 | fs/xiafs/dir.c | if (!IS_RDONLY (inode)) { |
inode | 105 | fs/xiafs/dir.c | inode->i_atime=CURRENT_TIME; |
inode | 106 | fs/xiafs/dir.c | inode->i_dirt=1; |
inode | 113 | fs/xiafs/dir.c | if (offset > XIAFS_ZSIZE(inode->i_sb)) { |
inode | 118 | fs/xiafs/dir.c | if (!IS_RDONLY (inode)) { |
inode | 119 | fs/xiafs/dir.c | inode->i_atime=CURRENT_TIME; |
inode | 120 | fs/xiafs/dir.c | inode->i_dirt=1; |
inode | 31 | fs/xiafs/file.c | static int xiafs_file_read(struct inode *, struct file *, char *, int); |
inode | 32 | fs/xiafs/file.c | static int xiafs_file_write(struct inode *, struct file *, char *, int); |
inode | 70 | fs/xiafs/file.c | xiafs_file_read(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 79 | fs/xiafs/file.c | if (!inode) { |
inode | 83 | fs/xiafs/file.c | if (!S_ISREG(inode->i_mode)) { |
inode | 88 | fs/xiafs/file.c | left = inode->i_size - offset; |
inode | 94 | fs/xiafs/file.c | zone_nr = offset >> XIAFS_ZSIZE_BITS(inode->i_sb); |
inode | 95 | fs/xiafs/file.c | offset &= XIAFS_ZSIZE(inode->i_sb) -1 ; |
inode | 96 | fs/xiafs/file.c | f_zones =(inode->i_size+XIAFS_ZSIZE(inode->i_sb)-1)>>XIAFS_ZSIZE_BITS(inode->i_sb); |
inode | 97 | fs/xiafs/file.c | zones = (left+offset+XIAFS_ZSIZE(inode->i_sb)-1) >> XIAFS_ZSIZE_BITS(inode->i_sb); |
inode | 100 | fs/xiafs/file.c | zones += read_ahead[MAJOR(inode->i_dev)] >> (1+XIAFS_ZSHIFT(inode->i_sb)); |
inode | 119 | fs/xiafs/file.c | *bhb = xiafs_getblk(inode, zone_nr++, 0); |
inode | 151 | fs/xiafs/file.c | if (left < XIAFS_ZSIZE(inode->i_sb) - offset) |
inode | 154 | fs/xiafs/file.c | chars = XIAFS_ZSIZE(inode->i_sb) - offset; |
inode | 181 | fs/xiafs/file.c | if (!IS_RDONLY (inode)) { |
inode | 182 | fs/xiafs/file.c | inode->i_atime = CURRENT_TIME; |
inode | 183 | fs/xiafs/file.c | inode->i_dirt = 1; |
inode | 189 | fs/xiafs/file.c | xiafs_file_write(struct inode * inode, struct file * filp, char * buf, int count) |
inode | 196 | fs/xiafs/file.c | if (!inode) { |
inode | 200 | fs/xiafs/file.c | if (!S_ISREG(inode->i_mode)) { |
inode | 209 | fs/xiafs/file.c | pos = inode->i_size; |
inode | 214 | fs/xiafs/file.c | bh = xiafs_getblk(inode, pos >> XIAFS_ZSIZE_BITS(inode->i_sb), 1); |
inode | 220 | fs/xiafs/file.c | c = XIAFS_ZSIZE(inode->i_sb) - (pos & (XIAFS_ZSIZE(inode->i_sb) - 1)); |
inode | 223 | fs/xiafs/file.c | if (c != XIAFS_ZSIZE(inode->i_sb) && !bh->b_uptodate) { |
inode | 233 | fs/xiafs/file.c | cp = (pos & (XIAFS_ZSIZE(inode->i_sb)-1)) + bh->b_data; |
inode | 235 | fs/xiafs/file.c | if (pos > inode->i_size) { |
inode | 236 | fs/xiafs/file.c | inode->i_size = pos; |
inode | 237 | fs/xiafs/file.c | inode->i_dirt = 1; |
inode | 246 | fs/xiafs/file.c | inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
inode | 248 | fs/xiafs/file.c | inode->i_dirt = 1; |
inode | 27 | fs/xiafs/fsync.c | #define blocksize (XIAFS_ZSIZE(inode->i_sb)) |
inode | 28 | fs/xiafs/fsync.c | #define addr_per_block (XIAFS_ADDRS_PER_Z(inode->i_sb)) |
inode | 30 | fs/xiafs/fsync.c | static int sync_block (struct inode * inode, unsigned long * block, int wait) |
inode | 38 | fs/xiafs/fsync.c | bh = get_hash_table(inode->i_dev, *block, blocksize); |
inode | 59 | fs/xiafs/fsync.c | static int sync_iblock (struct inode * inode, unsigned long * iblock, |
inode | 68 | fs/xiafs/fsync.c | rc = sync_block (inode, iblock, wait); |
inode | 71 | fs/xiafs/fsync.c | *bh = bread(inode->i_dev, tmp, blocksize); |
inode | 83 | fs/xiafs/fsync.c | static int sync_direct(struct inode *inode, int wait) |
inode | 89 | fs/xiafs/fsync.c | rc = sync_block (inode, inode->u.ext_i.i_data + i, wait); |
inode | 98 | fs/xiafs/fsync.c | static int sync_indirect(struct inode *inode, unsigned long *iblock, int wait) |
inode | 104 | fs/xiafs/fsync.c | rc = sync_iblock (inode, iblock, &ind_bh, wait); |
inode | 109 | fs/xiafs/fsync.c | rc = sync_block (inode, |
inode | 121 | fs/xiafs/fsync.c | static int sync_dindirect(struct inode *inode, unsigned long *diblock, |
inode | 128 | fs/xiafs/fsync.c | rc = sync_iblock (inode, diblock, &dind_bh, wait); |
inode | 133 | fs/xiafs/fsync.c | rc = sync_indirect (inode, |
inode | 145 | fs/xiafs/fsync.c | int xiafs_sync_file(struct inode * inode, struct file * file) |
inode | 149 | fs/xiafs/fsync.c | if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || |
inode | 150 | fs/xiafs/fsync.c | S_ISLNK(inode->i_mode))) |
inode | 154 | fs/xiafs/fsync.c | err |= sync_direct(inode, wait); |
inode | 155 | fs/xiafs/fsync.c | err |= sync_indirect(inode, &inode->u.xiafs_i.i_ind_zone, wait); |
inode | 156 | fs/xiafs/fsync.c | err |= sync_dindirect(inode, &inode->u.xiafs_i.i_dind_zone, wait); |
inode | 158 | fs/xiafs/fsync.c | err |= xiafs_sync_inode (inode); |
inode | 26 | fs/xiafs/inode.c | void xiafs_put_inode(struct inode *inode) |
inode | 28 | fs/xiafs/inode.c | if (inode->i_nlink) |
inode | 30 | fs/xiafs/inode.c | inode->i_size = 0; |
inode | 31 | fs/xiafs/inode.c | xiafs_truncate(inode); |
inode | 32 | fs/xiafs/inode.c | xiafs_free_inode(inode); |
inode | 185 | fs/xiafs/inode.c | int xiafs_bmap(struct inode * inode,int zone) |
inode | 193 | fs/xiafs/inode.c | if (zone >= 8+(1+XIAFS_ADDRS_PER_Z(inode->i_sb))*XIAFS_ADDRS_PER_Z(inode->i_sb)) { |
inode | 197 | fs/xiafs/inode.c | if (!IS_RDONLY (inode)) { |
inode | 198 | fs/xiafs/inode.c | inode->i_atime = CURRENT_TIME; |
inode | 199 | fs/xiafs/inode.c | inode->i_dirt = 1; |
inode | 202 | fs/xiafs/inode.c | return inode->u.xiafs_i.i_zone[zone]; |
inode | 204 | fs/xiafs/inode.c | if (zone < XIAFS_ADDRS_PER_Z(inode->i_sb)) { |
inode | 205 | fs/xiafs/inode.c | i = inode->u.xiafs_i.i_ind_zone; |
inode | 207 | fs/xiafs/inode.c | i = zone_bmap(bread(inode->i_dev, i, XIAFS_ZSIZE(inode->i_sb)), zone); |
inode | 210 | fs/xiafs/inode.c | zone -= XIAFS_ADDRS_PER_Z(inode->i_sb); |
inode | 211 | fs/xiafs/inode.c | i = inode->u.xiafs_i.i_dind_zone; |
inode | 213 | fs/xiafs/inode.c | i = zone_bmap(bread(inode->i_dev, i, XIAFS_ZSIZE(inode->i_sb)), |
inode | 214 | fs/xiafs/inode.c | zone >> XIAFS_ADDRS_PER_Z_BITS(inode->i_sb)); |
inode | 216 | fs/xiafs/inode.c | i= zone_bmap(bread(inode->i_dev,i, XIAFS_ZSIZE(inode->i_sb)), |
inode | 217 | fs/xiafs/inode.c | zone & (XIAFS_ADDRS_PER_Z(inode->i_sb)-1)); |
inode | 221 | fs/xiafs/inode.c | static u_long get_prev_addr(struct inode * inode, int zone) |
inode | 227 | fs/xiafs/inode.c | if ((tmp=xiafs_bmap(inode, zone))) |
inode | 229 | fs/xiafs/inode.c | random_nr=(random_nr+23)%inode->i_sb->u.xiafs_sb.s_ndatazones; |
inode | 230 | fs/xiafs/inode.c | return random_nr + inode->i_sb->u.xiafs_sb.s_firstdatazone; |
inode | 234 | fs/xiafs/inode.c | dt_getblk(struct inode * inode, u_long *lp, int create, u_long prev_addr) |
inode | 241 | fs/xiafs/inode.c | result = getblk(inode->i_dev, tmp, XIAFS_ZSIZE(inode->i_sb)); |
inode | 249 | fs/xiafs/inode.c | tmp = xiafs_new_zone(inode->i_sb, prev_addr); |
inode | 252 | fs/xiafs/inode.c | result = getblk(inode->i_dev, tmp, XIAFS_ZSIZE(inode->i_sb)); |
inode | 254 | fs/xiafs/inode.c | xiafs_free_zone(inode->i_sb, tmp); |
inode | 259 | fs/xiafs/inode.c | inode->i_blocks+=2 << XIAFS_ZSHIFT(inode->i_sb); |
inode | 264 | fs/xiafs/inode.c | indt_getblk(struct inode * inode, struct buffer_head * bh, |
inode | 284 | fs/xiafs/inode.c | result = getblk(bh->b_dev, tmp, XIAFS_ZSIZE(inode->i_sb)); |
inode | 296 | fs/xiafs/inode.c | tmp = xiafs_new_zone(inode->i_sb, prev_addr); |
inode | 301 | fs/xiafs/inode.c | result = getblk(bh->b_dev, tmp, XIAFS_ZSIZE(inode->i_sb)); |
inode | 303 | fs/xiafs/inode.c | xiafs_free_zone(inode->i_sb, tmp); |
inode | 308 | fs/xiafs/inode.c | inode->i_blocks+=2 << XIAFS_ZSHIFT(inode->i_sb); |
inode | 314 | fs/xiafs/inode.c | struct buffer_head * xiafs_getblk(struct inode * inode, int zone, int create) |
inode | 323 | fs/xiafs/inode.c | if (zone >= 8+(1+XIAFS_ADDRS_PER_Z(inode->i_sb))*XIAFS_ADDRS_PER_Z(inode->i_sb)) { |
inode | 329 | fs/xiafs/inode.c | prev_addr=get_prev_addr(inode, zone); |
inode | 331 | fs/xiafs/inode.c | return dt_getblk(inode, zone+inode->u.xiafs_i.i_zone, create, prev_addr); |
inode | 333 | fs/xiafs/inode.c | if (zone < XIAFS_ADDRS_PER_Z(inode->i_sb)) { |
inode | 334 | fs/xiafs/inode.c | bh = dt_getblk(inode, &(inode->u.xiafs_i.i_ind_zone), create, prev_addr); |
inode | 335 | fs/xiafs/inode.c | bh = indt_getblk(inode, bh, zone, create, prev_addr); |
inode | 338 | fs/xiafs/inode.c | zone -= XIAFS_ADDRS_PER_Z(inode->i_sb); |
inode | 339 | fs/xiafs/inode.c | bh = dt_getblk(inode, &(inode->u.xiafs_i.i_dind_zone), create, prev_addr); |
inode | 340 | fs/xiafs/inode.c | bh = indt_getblk(inode, bh, zone>>XIAFS_ADDRS_PER_Z_BITS(inode->i_sb), |
inode | 342 | fs/xiafs/inode.c | bh = indt_getblk(inode, bh, zone&(XIAFS_ADDRS_PER_Z(inode->i_sb)-1), |
inode | 347 | fs/xiafs/inode.c | struct buffer_head * xiafs_bread(struct inode * inode, int zone, int create) |
inode | 351 | fs/xiafs/inode.c | bh = xiafs_getblk(inode, zone, create); |
inode | 362 | fs/xiafs/inode.c | void xiafs_read_inode(struct inode * inode) |
inode | 369 | fs/xiafs/inode.c | ino = inode->i_ino; |
inode | 370 | fs/xiafs/inode.c | inode->i_op = NULL; |
inode | 371 | fs/xiafs/inode.c | inode->i_mode=0; |
inode | 372 | fs/xiafs/inode.c | if (!ino || ino > inode->i_sb->u.xiafs_sb.s_ninodes) { |
inode | 376 | fs/xiafs/inode.c | zone = 1 + inode->i_sb->u.xiafs_sb.s_imap_zones + |
inode | 377 | fs/xiafs/inode.c | inode->i_sb->u.xiafs_sb.s_zmap_zones + |
inode | 378 | fs/xiafs/inode.c | (ino-1)/ XIAFS_INODES_PER_Z(inode->i_sb); |
inode | 379 | fs/xiafs/inode.c | if (!(bh=bread(inode->i_dev, zone, XIAFS_ZSIZE(inode->i_sb)))) { |
inode | 384 | fs/xiafs/inode.c | ((ino-1) & (XIAFS_INODES_PER_Z(inode->i_sb) - 1)); |
inode | 385 | fs/xiafs/inode.c | inode->i_mode = raw_inode->i_mode; |
inode | 386 | fs/xiafs/inode.c | inode->i_uid = raw_inode->i_uid; |
inode | 387 | fs/xiafs/inode.c | inode->i_gid = raw_inode->i_gid; |
inode | 388 | fs/xiafs/inode.c | inode->i_nlink = raw_inode->i_nlinks; |
inode | 389 | fs/xiafs/inode.c | inode->i_size = raw_inode->i_size; |
inode | 390 | fs/xiafs/inode.c | inode->i_mtime = raw_inode->i_mtime; |
inode | 391 | fs/xiafs/inode.c | inode->i_atime = raw_inode->i_atime; |
inode | 392 | fs/xiafs/inode.c | inode->i_ctime = raw_inode->i_ctime; |
inode | 393 | fs/xiafs/inode.c | inode->i_blksize = XIAFS_ZSIZE(inode->i_sb); |
inode | 394 | fs/xiafs/inode.c | if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) { |
inode | 395 | fs/xiafs/inode.c | inode->i_blocks=0; |
inode | 396 | fs/xiafs/inode.c | inode->i_rdev = raw_inode->i_zone[0]; |
inode | 398 | fs/xiafs/inode.c | XIAFS_GET_BLOCKS(raw_inode, inode->i_blocks); |
inode | 400 | fs/xiafs/inode.c | inode->u.xiafs_i.i_zone[zone] = raw_inode->i_zone[zone] & 0xffffff; |
inode | 401 | fs/xiafs/inode.c | inode->u.xiafs_i.i_ind_zone = raw_inode->i_ind_zone & 0xffffff; |
inode | 402 | fs/xiafs/inode.c | inode->u.xiafs_i.i_dind_zone = raw_inode->i_dind_zone & 0xffffff; |
inode | 405 | fs/xiafs/inode.c | if (S_ISREG(inode->i_mode)) |
inode | 406 | fs/xiafs/inode.c | inode->i_op = &xiafs_file_inode_operations; |
inode | 407 | fs/xiafs/inode.c | else if (S_ISDIR(inode->i_mode)) |
inode | 408 | fs/xiafs/inode.c | inode->i_op = &xiafs_dir_inode_operations; |
inode | 409 | fs/xiafs/inode.c | else if (S_ISLNK(inode->i_mode)) |
inode | 410 | fs/xiafs/inode.c | inode->i_op = &xiafs_symlink_inode_operations; |
inode | 411 | fs/xiafs/inode.c | else if (S_ISCHR(inode->i_mode)) |
inode | 412 | fs/xiafs/inode.c | inode->i_op = &chrdev_inode_operations; |
inode | 413 | fs/xiafs/inode.c | else if (S_ISBLK(inode->i_mode)) |
inode | 414 | fs/xiafs/inode.c | inode->i_op = &blkdev_inode_operations; |
inode | 415 | fs/xiafs/inode.c | else if (S_ISFIFO(inode->i_mode)) |
inode | 416 | fs/xiafs/inode.c | init_fifo(inode); |
inode | 419 | fs/xiafs/inode.c | static struct buffer_head * xiafs_update_inode(struct inode * inode) |
inode | 426 | fs/xiafs/inode.c | if (IS_RDONLY (inode)) { |
inode | 428 | fs/xiafs/inode.c | inode->i_dirt = 0; |
inode | 432 | fs/xiafs/inode.c | ino = inode->i_ino; |
inode | 433 | fs/xiafs/inode.c | if (!ino || ino > inode->i_sb->u.xiafs_sb.s_ninodes) { |
inode | 435 | fs/xiafs/inode.c | inode->i_dirt=0; |
inode | 438 | fs/xiafs/inode.c | zone = 1 + inode->i_sb->u.xiafs_sb.s_imap_zones + |
inode | 439 | fs/xiafs/inode.c | inode->i_sb->u.xiafs_sb.s_zmap_zones + |
inode | 440 | fs/xiafs/inode.c | (ino-1) / XIAFS_INODES_PER_Z(inode->i_sb); |
inode | 441 | fs/xiafs/inode.c | if (!(bh=bread(inode->i_dev, zone, XIAFS_ZSIZE(inode->i_sb)))) { |
inode | 443 | fs/xiafs/inode.c | inode->i_dirt=0; |
inode | 447 | fs/xiafs/inode.c | ((ino-1) & (XIAFS_INODES_PER_Z(inode->i_sb) -1)); |
inode | 448 | fs/xiafs/inode.c | raw_inode->i_mode = inode->i_mode; |
inode | 449 | fs/xiafs/inode.c | raw_inode->i_uid = inode->i_uid; |
inode | 450 | fs/xiafs/inode.c | raw_inode->i_gid = inode->i_gid; |
inode | 451 | fs/xiafs/inode.c | raw_inode->i_nlinks = inode->i_nlink; |
inode | 452 | fs/xiafs/inode.c | raw_inode->i_size = inode->i_size; |
inode | 453 | fs/xiafs/inode.c | raw_inode->i_atime = inode->i_atime; |
inode | 454 | fs/xiafs/inode.c | raw_inode->i_ctime = inode->i_ctime; |
inode | 455 | fs/xiafs/inode.c | raw_inode->i_mtime = inode->i_mtime; |
inode | 456 | fs/xiafs/inode.c | if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) |
inode | 457 | fs/xiafs/inode.c | raw_inode->i_zone[0] = inode->i_rdev; |
inode | 459 | fs/xiafs/inode.c | XIAFS_PUT_BLOCKS(raw_inode, inode->i_blocks); |
inode | 462 | fs/xiafs/inode.c | | (inode->u.xiafs_i.i_zone[zone] & 0xffffff); |
inode | 464 | fs/xiafs/inode.c | | (inode->u.xiafs_i.i_ind_zone & 0xffffff); |
inode | 466 | fs/xiafs/inode.c | | (inode->u.xiafs_i.i_dind_zone & 0xffffff); |
inode | 468 | fs/xiafs/inode.c | inode->i_dirt=0; |
inode | 474 | fs/xiafs/inode.c | void xiafs_write_inode(struct inode * inode) |
inode | 477 | fs/xiafs/inode.c | bh = xiafs_update_inode(inode); |
inode | 481 | fs/xiafs/inode.c | int xiafs_sync_inode (struct inode *inode) |
inode | 486 | fs/xiafs/inode.c | bh = xiafs_update_inode(inode); |
inode | 494 | fs/xiafs/inode.c | inode->i_dev, inode->i_ino); |
inode | 57 | fs/xiafs/namei.c | xiafs_find_entry(struct inode * inode, const char * name, int namelen, |
inode | 65 | fs/xiafs/namei.c | if (!inode) |
inode | 70 | fs/xiafs/namei.c | if (inode->i_size & (XIAFS_ZSIZE(inode->i_sb) - 1)) { |
inode | 74 | fs/xiafs/namei.c | zones=inode->i_size >> XIAFS_ZSIZE_BITS(inode->i_sb); |
inode | 76 | fs/xiafs/namei.c | bh = xiafs_bread(inode, i, 0); |
inode | 87 | fs/xiafs/namei.c | while ( pos < XIAFS_ZSIZE(inode->i_sb) ) { |
inode | 88 | fs/xiafs/namei.c | if (dep->d_ino > inode->i_sb->u.xiafs_sb.s_ninodes || |
inode | 90 | fs/xiafs/namei.c | dep->d_rec_len+(char *)dep > bh->b_data+XIAFS_ZSIZE(inode->i_sb) || |
inode | 107 | fs/xiafs/namei.c | if (pos > XIAFS_ZSIZE(inode->i_sb)) { |
inode | 115 | fs/xiafs/namei.c | int xiafs_lookup(struct inode * dir, const char * name, int len, |
inode | 116 | fs/xiafs/namei.c | struct inode ** result) |
inode | 153 | fs/xiafs/namei.c | static struct buffer_head * xiafs_add_entry(struct inode * dir, |
inode | 244 | fs/xiafs/namei.c | int xiafs_create(struct inode * dir, const char * name, int len, int mode, |
inode | 245 | fs/xiafs/namei.c | struct inode ** result) |
inode | 247 | fs/xiafs/namei.c | struct inode * inode; |
inode | 254 | fs/xiafs/namei.c | inode = xiafs_new_inode(dir); |
inode | 255 | fs/xiafs/namei.c | if (!inode) { |
inode | 259 | fs/xiafs/namei.c | inode->i_op = &xiafs_file_inode_operations; |
inode | 260 | fs/xiafs/namei.c | inode->i_mode = mode; |
inode | 261 | fs/xiafs/namei.c | inode->i_dirt = 1; |
inode | 264 | fs/xiafs/namei.c | inode->i_nlink--; |
inode | 265 | fs/xiafs/namei.c | inode->i_dirt = 1; |
inode | 266 | fs/xiafs/namei.c | iput(inode); |
inode | 270 | fs/xiafs/namei.c | de->d_ino = inode->i_ino; |
inode | 274 | fs/xiafs/namei.c | *result = inode; |
inode | 278 | fs/xiafs/namei.c | int xiafs_mknod(struct inode *dir, const char *name, int len, int mode, int rdev) |
inode | 280 | fs/xiafs/namei.c | struct inode * inode; |
inode | 292 | fs/xiafs/namei.c | inode = xiafs_new_inode(dir); |
inode | 293 | fs/xiafs/namei.c | if (!inode) { |
inode | 297 | fs/xiafs/namei.c | inode->i_uid = current->euid; |
inode | 298 | fs/xiafs/namei.c | inode->i_mode = mode; |
inode | 299 | fs/xiafs/namei.c | inode->i_op = NULL; |
inode | 300 | fs/xiafs/namei.c | if (S_ISREG(inode->i_mode)) |
inode | 301 | fs/xiafs/namei.c | inode->i_op = &xiafs_file_inode_operations; |
inode | 302 | fs/xiafs/namei.c | else if (S_ISDIR(inode->i_mode)) { |
inode | 303 | fs/xiafs/namei.c | inode->i_op = &xiafs_dir_inode_operations; |
inode | 305 | fs/xiafs/namei.c | inode->i_mode |= S_ISGID; |
inode | 307 | fs/xiafs/namei.c | else if (S_ISLNK(inode->i_mode)) |
inode | 308 | fs/xiafs/namei.c | inode->i_op = &xiafs_symlink_inode_operations; |
inode | 309 | fs/xiafs/namei.c | else if (S_ISCHR(inode->i_mode)) |
inode | 310 | fs/xiafs/namei.c | inode->i_op = &chrdev_inode_operations; |
inode | 311 | fs/xiafs/namei.c | else if (S_ISBLK(inode->i_mode)) |
inode | 312 | fs/xiafs/namei.c | inode->i_op = &blkdev_inode_operations; |
inode | 313 | fs/xiafs/namei.c | else if (S_ISFIFO(inode->i_mode)) |
inode | 314 | fs/xiafs/namei.c | init_fifo(inode); |
inode | 316 | fs/xiafs/namei.c | inode->i_rdev = rdev; |
inode | 317 | fs/xiafs/namei.c | inode->i_atime = inode->i_ctime = inode->i_atime = CURRENT_TIME; |
inode | 318 | fs/xiafs/namei.c | inode->i_dirt = 1; |
inode | 321 | fs/xiafs/namei.c | inode->i_nlink--; |
inode | 322 | fs/xiafs/namei.c | inode->i_dirt = 1; |
inode | 323 | fs/xiafs/namei.c | iput(inode); |
inode | 327 | fs/xiafs/namei.c | de->d_ino = inode->i_ino; |
inode | 331 | fs/xiafs/namei.c | iput(inode); |
inode | 335 | fs/xiafs/namei.c | int xiafs_mkdir(struct inode * dir, const char * name, int len, int mode) |
inode | 337 | fs/xiafs/namei.c | struct inode * inode; |
inode | 351 | fs/xiafs/namei.c | inode = xiafs_new_inode(dir); |
inode | 352 | fs/xiafs/namei.c | if (!inode) { |
inode | 356 | fs/xiafs/namei.c | inode->i_op = &xiafs_dir_inode_operations; |
inode | 357 | fs/xiafs/namei.c | inode->i_size = XIAFS_ZSIZE(dir->i_sb); |
inode | 358 | fs/xiafs/namei.c | inode->i_atime = inode->i_ctime = inode->i_mtime = CURRENT_TIME; |
inode | 359 | fs/xiafs/namei.c | dir_block = xiafs_bread(inode,0,1); |
inode | 362 | fs/xiafs/namei.c | inode->i_nlink--; |
inode | 363 | fs/xiafs/namei.c | inode->i_dirt = 1; |
inode | 364 | fs/xiafs/namei.c | iput(inode); |
inode | 368 | fs/xiafs/namei.c | de->d_ino=inode->i_ino; |
inode | 377 | fs/xiafs/namei.c | inode->i_nlink = 2; |
inode | 380 | fs/xiafs/namei.c | inode->i_mode = S_IFDIR | (mode & S_IRWXUGO & ~current->umask); |
inode | 382 | fs/xiafs/namei.c | inode->i_mode |= S_ISGID; |
inode | 383 | fs/xiafs/namei.c | inode->i_dirt = 1; |
inode | 387 | fs/xiafs/namei.c | inode->i_nlink=0; |
inode | 388 | fs/xiafs/namei.c | iput(inode); |
inode | 391 | fs/xiafs/namei.c | de->d_ino = inode->i_ino; |
inode | 396 | fs/xiafs/namei.c | iput(inode); |
inode | 404 | fs/xiafs/namei.c | static int empty_dir(struct inode * inode) |
inode | 410 | fs/xiafs/namei.c | if (inode->i_size & (XIAFS_ZSIZE(inode->i_sb)-1) ) { |
inode | 415 | fs/xiafs/namei.c | zones=inode->i_size >> XIAFS_ZSIZE_BITS(inode->i_sb); |
inode | 417 | fs/xiafs/namei.c | bh = xiafs_bread(inode, i, 0); |
inode | 424 | fs/xiafs/namei.c | if (de->d_ino != inode->i_ino || strcmp(".", de->d_name) || |
inode | 442 | fs/xiafs/namei.c | while (offset < XIAFS_ZSIZE(inode->i_sb)) { |
inode | 444 | fs/xiafs/namei.c | if (de->d_ino > inode->i_sb->u.xiafs_sb.s_ninodes || |
inode | 446 | fs/xiafs/namei.c | (char *)de+de->d_rec_len > bh->b_data+XIAFS_ZSIZE(inode->i_sb) || |
inode | 484 | fs/xiafs/namei.c | int xiafs_rmdir(struct inode * dir, const char * name, int len) |
inode | 487 | fs/xiafs/namei.c | struct inode * inode; |
inode | 491 | fs/xiafs/namei.c | inode = NULL; |
inode | 497 | fs/xiafs/namei.c | if (!(inode = iget(dir->i_sb, de->d_ino))) |
inode | 500 | fs/xiafs/namei.c | inode->i_uid != current->euid) |
inode | 502 | fs/xiafs/namei.c | if (inode->i_dev != dir->i_dev) |
inode | 504 | fs/xiafs/namei.c | if (inode == dir) /* we may not delete ".", but "../dir" is ok */ |
inode | 506 | fs/xiafs/namei.c | if (!S_ISDIR(inode->i_mode)) { |
inode | 510 | fs/xiafs/namei.c | if (!empty_dir(inode)) { |
inode | 514 | fs/xiafs/namei.c | if (inode->i_count > 1) { |
inode | 518 | fs/xiafs/namei.c | if (inode->i_nlink != 2) |
inode | 522 | fs/xiafs/namei.c | inode->i_nlink=0; |
inode | 523 | fs/xiafs/namei.c | inode->i_dirt=1; |
inode | 525 | fs/xiafs/namei.c | inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME; |
inode | 530 | fs/xiafs/namei.c | iput(inode); |
inode | 535 | fs/xiafs/namei.c | int xiafs_unlink(struct inode * dir, const char * name, int len) |
inode | 538 | fs/xiafs/namei.c | struct inode * inode; |
inode | 544 | fs/xiafs/namei.c | inode = NULL; |
inode | 548 | fs/xiafs/namei.c | if (!(inode = iget(dir->i_sb, de->d_ino))) |
inode | 551 | fs/xiafs/namei.c | if (S_ISDIR(inode->i_mode)) |
inode | 553 | fs/xiafs/namei.c | if (de->d_ino != inode->i_ino) { |
inode | 554 | fs/xiafs/namei.c | iput(inode); |
inode | 561 | fs/xiafs/namei.c | current->euid != inode->i_uid && |
inode | 564 | fs/xiafs/namei.c | if (!inode->i_nlink) { |
inode | 566 | fs/xiafs/namei.c | inode->i_nlink=1; |
inode | 570 | fs/xiafs/namei.c | inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME; |
inode | 572 | fs/xiafs/namei.c | inode->i_nlink--; |
inode | 573 | fs/xiafs/namei.c | inode->i_dirt = 1; |
inode | 577 | fs/xiafs/namei.c | iput(inode); |
inode | 582 | fs/xiafs/namei.c | int xiafs_symlink(struct inode * dir, const char * name, |
inode | 586 | fs/xiafs/namei.c | struct inode * inode = NULL; |
inode | 597 | fs/xiafs/namei.c | if (!(inode = xiafs_new_inode(dir))) { |
inode | 601 | fs/xiafs/namei.c | inode->i_mode = S_IFLNK | S_IRWXUGO; |
inode | 602 | fs/xiafs/namei.c | inode->i_op = &xiafs_symlink_inode_operations; |
inode | 603 | fs/xiafs/namei.c | name_block = xiafs_bread(inode,0,1); |
inode | 606 | fs/xiafs/namei.c | inode->i_nlink--; |
inode | 607 | fs/xiafs/namei.c | inode->i_dirt = 1; |
inode | 608 | fs/xiafs/namei.c | iput(inode); |
inode | 616 | fs/xiafs/namei.c | inode->i_size = i; |
inode | 617 | fs/xiafs/namei.c | inode->i_dirt = 1; |
inode | 620 | fs/xiafs/namei.c | inode->i_nlink--; |
inode | 621 | fs/xiafs/namei.c | inode->i_dirt = 1; |
inode | 622 | fs/xiafs/namei.c | iput(inode); |
inode | 626 | fs/xiafs/namei.c | de->d_ino = inode->i_ino; |
inode | 630 | fs/xiafs/namei.c | iput(inode); |
inode | 634 | fs/xiafs/namei.c | int xiafs_link(struct inode * oldinode, struct inode * dir, |
inode | 674 | fs/xiafs/namei.c | static int subdir(struct inode * new_inode, struct inode * old_inode) |
inode | 711 | fs/xiafs/namei.c | static int do_xiafs_rename(struct inode * old_dir, const char * old_name, |
inode | 712 | fs/xiafs/namei.c | int old_len, struct inode * new_dir, |
inode | 715 | fs/xiafs/namei.c | struct inode * old_inode, * new_inode; |
inode | 832 | fs/xiafs/namei.c | int xiafs_rename(struct inode * old_dir, const char * old_name, int old_len, |
inode | 833 | fs/xiafs/namei.c | struct inode * new_dir, const char * new_name, int new_len) |
inode | 21 | fs/xiafs/symlink.c | xiafs_readlink(struct inode *, char *, int); |
inode | 24 | fs/xiafs/symlink.c | xiafs_follow_link(struct inode *, struct inode *, int, int, struct inode **); |
inode | 47 | fs/xiafs/symlink.c | static int xiafs_readlink(struct inode * inode, char * buffer, int buflen) |
inode | 53 | fs/xiafs/symlink.c | if (!S_ISLNK(inode->i_mode)) { |
inode | 54 | fs/xiafs/symlink.c | iput(inode); |
inode | 59 | fs/xiafs/symlink.c | bh = xiafs_bread(inode, 0, 0); |
inode | 60 | fs/xiafs/symlink.c | if (!IS_RDONLY (inode)) { |
inode | 61 | fs/xiafs/symlink.c | inode->i_atime=CURRENT_TIME; |
inode | 62 | fs/xiafs/symlink.c | inode->i_dirt=1; |
inode | 64 | fs/xiafs/symlink.c | iput(inode); |
inode | 75 | fs/xiafs/symlink.c | static int xiafs_follow_link(struct inode * dir, struct inode * inode, |
inode | 76 | fs/xiafs/symlink.c | int flag, int mode, struct inode ** res_inode) |
inode | 86 | fs/xiafs/symlink.c | if (!inode) { |
inode | 90 | fs/xiafs/symlink.c | if (!S_ISLNK(inode->i_mode)) { |
inode | 92 | fs/xiafs/symlink.c | *res_inode = inode; |
inode | 95 | fs/xiafs/symlink.c | if (!IS_RDONLY (inode)) { |
inode | 96 | fs/xiafs/symlink.c | inode->i_atime=CURRENT_TIME; |
inode | 97 | fs/xiafs/symlink.c | inode->i_dirt=1; |
inode | 100 | fs/xiafs/symlink.c | iput(inode); |
inode | 104 | fs/xiafs/symlink.c | if (!(bh = xiafs_bread(inode, 0, 0))) { |
inode | 105 | fs/xiafs/symlink.c | iput(inode); |
inode | 109 | fs/xiafs/symlink.c | iput(inode); |
inode | 36 | fs/xiafs/truncate.c | #define DT_ZONE ((inode->i_size + XIAFS_ZSIZE(inode->i_sb) - 1) \ |
inode | 37 | fs/xiafs/truncate.c | >> XIAFS_ZSIZE_BITS(inode->i_sb) ) |
inode | 39 | fs/xiafs/truncate.c | static int trunc_direct(struct inode * inode) |
inode | 50 | fs/xiafs/truncate.c | lp=i + inode->u.xiafs_i.i_zone; |
inode | 53 | fs/xiafs/truncate.c | bh = getblk(inode->i_dev, tmp, XIAFS_ZSIZE(inode->i_sb)); |
inode | 62 | fs/xiafs/truncate.c | inode->i_dirt = 1; |
inode | 63 | fs/xiafs/truncate.c | inode->i_blocks-=2 << XIAFS_ZSHIFT(inode->i_sb); |
inode | 64 | fs/xiafs/truncate.c | xiafs_free_zone(inode->i_sb, tmp); |
inode | 71 | fs/xiafs/truncate.c | static int trunc_indirect(struct inode * inode, int addr_off, u_long * lp) |
inode | 83 | fs/xiafs/truncate.c | ind_bh = bread(inode->i_dev, tmp, XIAFS_ZSIZE(inode->i_sb)); |
inode | 93 | fs/xiafs/truncate.c | for (i = INDT_ZONE<0?0:INDT_ZONE; i < XIAFS_ADDRS_PER_Z(inode->i_sb); i++) { |
inode | 99 | fs/xiafs/truncate.c | bh = getblk(inode->i_dev, tmp, XIAFS_ZSIZE(inode->i_sb)); |
inode | 109 | fs/xiafs/truncate.c | inode->i_blocks-= 2 << XIAFS_ZSHIFT(inode->i_sb); |
inode | 110 | fs/xiafs/truncate.c | xiafs_free_zone(inode->i_sb, tmp); |
inode | 115 | fs/xiafs/truncate.c | for (i = 0; i < XIAFS_ADDRS_PER_Z(inode->i_sb) && !(*indp++); i++) ; |
inode | 116 | fs/xiafs/truncate.c | if (i >= XIAFS_ADDRS_PER_Z(inode->i_sb)) { |
inode | 122 | fs/xiafs/truncate.c | inode->i_blocks-= 2 << XIAFS_ZSHIFT(inode->i_sb); |
inode | 123 | fs/xiafs/truncate.c | xiafs_free_zone(inode->i_sb, tmp); |
inode | 130 | fs/xiafs/truncate.c | static int trunc_dindirect(struct inode * inode) |
inode | 134 | fs/xiafs/truncate.c | ((DT_ZONE-XIAFS_ADDRS_PER_Z(inode->i_sb)-8)>>XIAFS_ADDRS_PER_Z_BITS(inode->i_sb)) |
inode | 141 | fs/xiafs/truncate.c | lp = &(inode->u.xiafs_i.i_dind_zone); |
inode | 144 | fs/xiafs/truncate.c | dind_bh = bread(inode->i_dev, tmp, XIAFS_ZSIZE(inode->i_sb)); |
inode | 154 | fs/xiafs/truncate.c | for (i=DINDT_ZONE<0?0:DINDT_ZONE ; i < XIAFS_ADDRS_PER_Z(inode->i_sb) ; i ++) { |
inode | 158 | fs/xiafs/truncate.c | retry |= trunc_indirect(inode, |
inode | 159 | fs/xiafs/truncate.c | 8+((1+i)<<XIAFS_ADDRS_PER_Z_BITS(inode->i_sb)), |
inode | 164 | fs/xiafs/truncate.c | for (i = 0; i < XIAFS_ADDRS_PER_Z(inode->i_sb) && !(*dindp++); i++); |
inode | 165 | fs/xiafs/truncate.c | if (i >= XIAFS_ADDRS_PER_Z(inode->i_sb)) { |
inode | 171 | fs/xiafs/truncate.c | inode->i_dirt = 1; |
inode | 172 | fs/xiafs/truncate.c | inode->i_blocks-=2 << XIAFS_ZSHIFT(inode->i_sb); |
inode | 173 | fs/xiafs/truncate.c | xiafs_free_zone(inode->i_sb, tmp); |
inode | 180 | fs/xiafs/truncate.c | void xiafs_truncate(struct inode * inode) |
inode | 184 | fs/xiafs/truncate.c | if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || |
inode | 185 | fs/xiafs/truncate.c | S_ISLNK(inode->i_mode))) |
inode | 188 | fs/xiafs/truncate.c | retry = trunc_direct(inode); |
inode | 189 | fs/xiafs/truncate.c | retry |= trunc_indirect(inode, 8, &(inode->u.xiafs_i.i_ind_zone)); |
inode | 190 | fs/xiafs/truncate.c | retry |= trunc_dindirect(inode); |
inode | 196 | fs/xiafs/truncate.c | inode->i_ctime = inode->i_mtime = CURRENT_TIME; |
inode | 197 | fs/xiafs/truncate.c | inode->i_dirt = 1; |
inode | 21 | include/linux/binfmts.h | struct inode * inode; |
inode | 37 | include/linux/binfmts.h | extern int read_exec(struct inode *inode, unsigned long offset, |
inode | 40 | include/linux/binfmts.h | extern int open_inode(struct inode * inode, int mode); |
inode | 282 | include/linux/ext2_fs.h | unsigned long inode; /* Inode number */ |
inode | 304 | include/linux/ext2_fs.h | extern int ext2_permission (struct inode *, int); |
inode | 327 | include/linux/ext2_fs.h | extern int ext2_check_dir_entry (char *, struct inode *, |
inode | 332 | include/linux/ext2_fs.h | extern int ext2_read (struct inode *, struct file *, char *, int); |
inode | 333 | include/linux/ext2_fs.h | extern int ext2_write (struct inode *, struct file *, char *, int); |
inode | 336 | include/linux/ext2_fs.h | extern int ext2_sync_file (struct inode *, struct file *); |
inode | 339 | include/linux/ext2_fs.h | extern struct inode * ext2_new_inode (const struct inode *, int); |
inode | 340 | include/linux/ext2_fs.h | extern void ext2_free_inode (struct inode *); |
inode | 345 | include/linux/ext2_fs.h | extern int ext2_bmap (struct inode *, int); |
inode | 347 | include/linux/ext2_fs.h | extern struct buffer_head * ext2_getblk (struct inode *, long, int, int *); |
inode | 348 | include/linux/ext2_fs.h | extern struct buffer_head * ext2_bread (struct inode *, int, int, int *); |
inode | 350 | include/linux/ext2_fs.h | extern void ext2_read_inode (struct inode *); |
inode | 351 | include/linux/ext2_fs.h | extern void ext2_write_inode (struct inode *); |
inode | 352 | include/linux/ext2_fs.h | extern void ext2_put_inode (struct inode *); |
inode | 353 | include/linux/ext2_fs.h | extern int ext2_sync_inode (struct inode *); |
inode | 356 | include/linux/ext2_fs.h | extern int ext2_ioctl (struct inode *, struct file *, unsigned int, |
inode | 360 | include/linux/ext2_fs.h | extern int ext2_open (struct inode *, struct file *); |
inode | 361 | include/linux/ext2_fs.h | extern void ext2_release (struct inode *, struct file *); |
inode | 362 | include/linux/ext2_fs.h | extern int ext2_lookup (struct inode *,const char *, int, struct inode **); |
inode | 363 | include/linux/ext2_fs.h | extern int ext2_create (struct inode *,const char *, int, int, |
inode | 364 | include/linux/ext2_fs.h | struct inode **); |
inode | 365 | include/linux/ext2_fs.h | extern int ext2_mkdir (struct inode *, const char *, int, int); |
inode | 366 | include/linux/ext2_fs.h | extern int ext2_rmdir (struct inode *, const char *, int); |
inode | 367 | include/linux/ext2_fs.h | extern int ext2_unlink (struct inode *, const char *, int); |
inode | 368 | include/linux/ext2_fs.h | extern int ext2_symlink (struct inode *, const char *, int, const char *); |
inode | 369 | include/linux/ext2_fs.h | extern int ext2_link (struct inode *, struct inode *, const char *, int); |
inode | 370 | include/linux/ext2_fs.h | extern int ext2_mknod (struct inode *, const char *, int, int, int); |
inode | 371 | include/linux/ext2_fs.h | extern int ext2_rename (struct inode *, const char *, int, |
inode | 372 | include/linux/ext2_fs.h | struct inode *, const char *, int); |
inode | 389 | include/linux/ext2_fs.h | extern void ext2_truncate (struct inode *); |
inode | 56 | include/linux/ext_fs.h | unsigned long inode; |
inode | 62 | include/linux/ext_fs.h | extern int ext_open(struct inode * inode, struct file * filp); |
inode | 63 | include/linux/ext_fs.h | extern void ext_release(struct inode * inode, struct file * filp); |
inode | 64 | include/linux/ext_fs.h | extern int ext_lookup(struct inode * dir,const char * name, int len, |
inode | 65 | include/linux/ext_fs.h | struct inode ** result); |
inode | 66 | include/linux/ext_fs.h | extern int ext_create(struct inode * dir,const char * name, int len, int mode, |
inode | 67 | include/linux/ext_fs.h | struct inode ** result); |
inode | 68 | include/linux/ext_fs.h | extern int ext_mkdir(struct inode * dir, const char * name, int len, int mode); |
inode | 69 | include/linux/ext_fs.h | extern int ext_rmdir(struct inode * dir, const char * name, int len); |
inode | 70 | include/linux/ext_fs.h | extern int ext_unlink(struct inode * dir, const char * name, int len); |
inode | 71 | include/linux/ext_fs.h | extern int ext_symlink(struct inode * inode, const char * name, int len, |
inode | 73 | include/linux/ext_fs.h | extern int ext_link(struct inode * oldinode, struct inode * dir, const char * name, int len); |
inode | 74 | include/linux/ext_fs.h | extern int ext_mknod(struct inode * dir, const char * name, int len, int mode, int rdev); |
inode | 75 | include/linux/ext_fs.h | extern int ext_rename(struct inode * old_dir, const char * old_name, int old_len, |
inode | 76 | include/linux/ext_fs.h | struct inode * new_dir, const char * new_name, int new_len); |
inode | 77 | include/linux/ext_fs.h | extern struct inode * ext_new_inode(const struct inode * dir); |
inode | 78 | include/linux/ext_fs.h | extern void ext_free_inode(struct inode * inode); |
inode | 84 | include/linux/ext_fs.h | extern int ext_bmap(struct inode *,int); |
inode | 86 | include/linux/ext_fs.h | extern struct buffer_head * ext_getblk(struct inode *, int, int); |
inode | 87 | include/linux/ext_fs.h | extern struct buffer_head * ext_bread(struct inode *, int, int); |
inode | 89 | include/linux/ext_fs.h | extern void ext_truncate(struct inode *); |
inode | 93 | include/linux/ext_fs.h | extern void ext_read_inode(struct inode *); |
inode | 94 | include/linux/ext_fs.h | extern void ext_write_inode(struct inode *); |
inode | 95 | include/linux/ext_fs.h | extern void ext_put_inode(struct inode *); |
inode | 97 | include/linux/ext_fs.h | extern int ext_sync_inode(struct inode *); |
inode | 98 | include/linux/ext_fs.h | extern int ext_sync_file(struct inode *, struct file *); |
inode | 100 | include/linux/ext_fs.h | extern int ext_lseek(struct inode *, struct file *, off_t, int); |
inode | 101 | include/linux/ext_fs.h | extern int ext_read(struct inode *, struct file *, char *, int); |
inode | 102 | include/linux/ext_fs.h | extern int ext_write(struct inode *, struct file *, char *, int); |
inode | 90 | include/linux/fs.h | #define IS_RDONLY(inode) (((inode)->i_sb) && ((inode)->i_sb->s_flags & MS_RDONLY)) |
inode | 91 | include/linux/fs.h | #define IS_NOSUID(inode) ((inode)->i_flags & MS_NOSUID) |
inode | 92 | include/linux/fs.h | #define IS_NODEV(inode) ((inode)->i_flags & MS_NODEV) |
inode | 93 | include/linux/fs.h | #define IS_NOEXEC(inode) ((inode)->i_flags & MS_NOEXEC) |
inode | 94 | include/linux/fs.h | #define IS_SYNC(inode) ((inode)->i_flags & MS_SYNC) |
inode | 176 | include/linux/fs.h | struct inode * i_next, * i_prev; |
inode | 177 | include/linux/fs.h | struct inode * i_hash_next, * i_hash_prev; |
inode | 178 | include/linux/fs.h | struct inode * i_bound_to, * i_bound_by; |
inode | 179 | include/linux/fs.h | struct inode * i_mount; |
inode | 208 | include/linux/fs.h | struct inode * f_inode; |
inode | 243 | include/linux/fs.h | struct inode * s_covered; |
inode | 244 | include/linux/fs.h | struct inode * s_mounted; |
inode | 259 | include/linux/fs.h | int (*lseek) (struct inode *, struct file *, off_t, int); |
inode | 260 | include/linux/fs.h | int (*read) (struct inode *, struct file *, char *, int); |
inode | 261 | include/linux/fs.h | int (*write) (struct inode *, struct file *, char *, int); |
inode | 262 | include/linux/fs.h | int (*readdir) (struct inode *, struct file *, struct dirent *, int); |
inode | 263 | include/linux/fs.h | int (*select) (struct inode *, struct file *, int, select_table *); |
inode | 264 | include/linux/fs.h | int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); |
inode | 265 | include/linux/fs.h | int (*mmap) (struct inode *, struct file *, unsigned long, size_t, int, unsigned long); |
inode | 266 | include/linux/fs.h | int (*open) (struct inode *, struct file *); |
inode | 267 | include/linux/fs.h | void (*release) (struct inode *, struct file *); |
inode | 268 | include/linux/fs.h | int (*fsync) (struct inode *, struct file *); |
inode | 273 | include/linux/fs.h | int (*create) (struct inode *,const char *,int,int,struct inode **); |
inode | 274 | include/linux/fs.h | int (*lookup) (struct inode *,const char *,int,struct inode **); |
inode | 275 | include/linux/fs.h | int (*link) (struct inode *,struct inode *,const char *,int); |
inode | 276 | include/linux/fs.h | int (*unlink) (struct inode *,const char *,int); |
inode | 277 | include/linux/fs.h | int (*symlink) (struct inode *,const char *,int,const char *); |
inode | 278 | include/linux/fs.h | int (*mkdir) (struct inode *,const char *,int,int); |
inode | 279 | include/linux/fs.h | int (*rmdir) (struct inode *,const char *,int); |
inode | 280 | include/linux/fs.h | int (*mknod) (struct inode *,const char *,int,int,int); |
inode | 281 | include/linux/fs.h | int (*rename) (struct inode *,const char *,int,struct inode *,const char *,int); |
inode | 282 | include/linux/fs.h | int (*readlink) (struct inode *,char *,int); |
inode | 283 | include/linux/fs.h | int (*follow_link) (struct inode *,struct inode *,int,int,struct inode **); |
inode | 284 | include/linux/fs.h | int (*bmap) (struct inode *,int); |
inode | 285 | include/linux/fs.h | void (*truncate) (struct inode *); |
inode | 286 | include/linux/fs.h | int (*permission) (struct inode *, int); |
inode | 290 | include/linux/fs.h | void (*read_inode) (struct inode *); |
inode | 291 | include/linux/fs.h | int (*notify_change) (int flags, struct inode *); |
inode | 292 | include/linux/fs.h | void (*write_inode) (struct inode *); |
inode | 293 | include/linux/fs.h | void (*put_inode) (struct inode *); |
inode | 315 | include/linux/fs.h | extern int blkdev_open(struct inode * inode, struct file * filp); |
inode | 320 | include/linux/fs.h | extern int chrdev_open(struct inode * inode, struct file * filp); |
inode | 324 | include/linux/fs.h | extern void init_fifo(struct inode * inode); |
inode | 337 | include/linux/fs.h | extern int fs_may_umount(dev_t dev, struct inode * mount_root); |
inode | 358 | include/linux/fs.h | extern int bmap(struct inode * inode,int block); |
inode | 359 | include/linux/fs.h | extern int notify_change(int flags, struct inode * inode); |
inode | 360 | include/linux/fs.h | extern int namei(const char * pathname, struct inode ** res_inode); |
inode | 361 | include/linux/fs.h | extern int lnamei(const char * pathname, struct inode ** res_inode); |
inode | 362 | include/linux/fs.h | extern int permission(struct inode * inode,int mask); |
inode | 364 | include/linux/fs.h | struct inode ** res_inode, struct inode * base); |
inode | 366 | include/linux/fs.h | extern void iput(struct inode * inode); |
inode | 367 | include/linux/fs.h | extern struct inode * __iget(struct super_block * sb,int nr,int crsmnt); |
inode | 368 | include/linux/fs.h | extern struct inode * iget(struct super_block * sb,int nr); |
inode | 369 | include/linux/fs.h | extern struct inode * get_empty_inode(void); |
inode | 370 | include/linux/fs.h | extern void insert_inode_hash(struct inode *); |
inode | 371 | include/linux/fs.h | extern void clear_inode(struct inode *); |
inode | 372 | include/linux/fs.h | extern struct inode * get_pipe_inode(void); |
inode | 389 | include/linux/fs.h | extern int char_read(struct inode *, struct file *, char *, int); |
inode | 390 | include/linux/fs.h | extern int block_read(struct inode *, struct file *, char *, int); |
inode | 393 | include/linux/fs.h | extern int char_write(struct inode *, struct file *, char *, int); |
inode | 394 | include/linux/fs.h | extern int block_write(struct inode *, struct file *, char *, int); |
inode | 396 | include/linux/fs.h | extern int generic_mmap(struct inode *, struct file *, unsigned long, size_t, int, unsigned long); |
inode | 398 | include/linux/fs.h | extern int block_fsync(struct inode *, struct file *); |
inode | 399 | include/linux/fs.h | extern int file_fsync(struct inode *, struct file *); |
inode | 130 | include/linux/iso_fs.h | extern int parse_rock_ridge_inode(struct iso_directory_record *, struct inode *); |
inode | 131 | include/linux/iso_fs.h | extern int get_rock_ridge_filename(struct iso_directory_record *, char ** name, int * len, struct inode *); |
inode | 133 | include/linux/iso_fs.h | extern char * get_rock_ridge_symlink(struct inode *); |
inode | 134 | include/linux/iso_fs.h | extern int find_rock_ridge_relocation(struct iso_directory_record *, struct inode *); |
inode | 167 | include/linux/iso_fs.h | extern int isofs_open(struct inode * inode, struct file * filp); |
inode | 168 | include/linux/iso_fs.h | extern void isofs_release(struct inode * inode, struct file * filp); |
inode | 169 | include/linux/iso_fs.h | extern int isofs_lookup(struct inode * dir,const char * name, int len, |
inode | 170 | include/linux/iso_fs.h | struct inode ** result); |
inode | 174 | include/linux/iso_fs.h | extern int isofs_bmap(struct inode *,int); |
inode | 178 | include/linux/iso_fs.h | extern void isofs_read_inode(struct inode *); |
inode | 179 | include/linux/iso_fs.h | extern void isofs_put_inode(struct inode *); |
inode | 182 | include/linux/iso_fs.h | extern int isofs_lseek(struct inode *, struct file *, off_t, int); |
inode | 183 | include/linux/iso_fs.h | extern int isofs_read(struct inode *, struct file *, char *, int); |
inode | 184 | include/linux/iso_fs.h | extern int isofs_lookup_grandparent(struct inode *, int); |
inode | 71 | include/linux/minix_fs.h | unsigned short inode; |
inode | 75 | include/linux/minix_fs.h | extern int minix_lookup(struct inode * dir,const char * name, int len, |
inode | 76 | include/linux/minix_fs.h | struct inode ** result); |
inode | 77 | include/linux/minix_fs.h | extern int minix_create(struct inode * dir,const char * name, int len, int mode, |
inode | 78 | include/linux/minix_fs.h | struct inode ** result); |
inode | 79 | include/linux/minix_fs.h | extern int minix_mkdir(struct inode * dir, const char * name, int len, int mode); |
inode | 80 | include/linux/minix_fs.h | extern int minix_rmdir(struct inode * dir, const char * name, int len); |
inode | 81 | include/linux/minix_fs.h | extern int minix_unlink(struct inode * dir, const char * name, int len); |
inode | 82 | include/linux/minix_fs.h | extern int minix_symlink(struct inode * inode, const char * name, int len, |
inode | 84 | include/linux/minix_fs.h | extern int minix_link(struct inode * oldinode, struct inode * dir, const char * name, int len); |
inode | 85 | include/linux/minix_fs.h | extern int minix_mknod(struct inode * dir, const char * name, int len, int mode, int rdev); |
inode | 86 | include/linux/minix_fs.h | extern int minix_rename(struct inode * old_dir, const char * old_name, int old_len, |
inode | 87 | include/linux/minix_fs.h | struct inode * new_dir, const char * new_name, int new_len); |
inode | 88 | include/linux/minix_fs.h | extern struct inode * minix_new_inode(const struct inode * dir); |
inode | 89 | include/linux/minix_fs.h | extern void minix_free_inode(struct inode * inode); |
inode | 95 | include/linux/minix_fs.h | extern int minix_bmap(struct inode *,int); |
inode | 97 | include/linux/minix_fs.h | extern struct buffer_head * minix_getblk(struct inode *, int, int); |
inode | 98 | include/linux/minix_fs.h | extern struct buffer_head * minix_bread(struct inode *, int, int); |
inode | 100 | include/linux/minix_fs.h | extern void minix_truncate(struct inode *); |
inode | 103 | include/linux/minix_fs.h | extern void minix_read_inode(struct inode *); |
inode | 104 | include/linux/minix_fs.h | extern void minix_write_inode(struct inode *); |
inode | 105 | include/linux/minix_fs.h | extern void minix_put_inode(struct inode *); |
inode | 107 | include/linux/minix_fs.h | extern int minix_sync_inode(struct inode *); |
inode | 108 | include/linux/minix_fs.h | extern int minix_sync_file(struct inode *, struct file *); |
inode | 30 | include/linux/mm.h | struct inode * vm_inode; |
inode | 132 | include/linux/msdos_fs.h | extern int msdos_add_cluster(struct inode *inode); |
inode | 136 | include/linux/msdos_fs.h | extern int msdos_get_entry(struct inode *dir,off_t *pos,struct buffer_head **bh, |
inode | 138 | include/linux/msdos_fs.h | extern int msdos_scan(struct inode *dir,char *name,struct buffer_head **res_bh, |
inode | 140 | include/linux/msdos_fs.h | extern int msdos_parent_ino(struct inode *dir,int locked); |
inode | 141 | include/linux/msdos_fs.h | extern int msdos_subdirs(struct inode *dir); |
inode | 146 | include/linux/msdos_fs.h | extern int msdos_smap(struct inode *inode,int sector); |
inode | 147 | include/linux/msdos_fs.h | extern int fat_free(struct inode *inode,int skip); |
inode | 149 | include/linux/msdos_fs.h | void cache_lookup(struct inode *inode,int cluster,int *f_clu,int *d_clu); |
inode | 150 | include/linux/msdos_fs.h | void cache_add(struct inode *inode,int f_clu,int d_clu); |
inode | 151 | include/linux/msdos_fs.h | void cache_inval_inode(struct inode *inode); |
inode | 153 | include/linux/msdos_fs.h | int get_cluster(struct inode *inode,int cluster); |
inode | 157 | include/linux/msdos_fs.h | extern int msdos_lookup(struct inode *dir,const char *name,int len, |
inode | 158 | include/linux/msdos_fs.h | struct inode **result); |
inode | 159 | include/linux/msdos_fs.h | extern int msdos_create(struct inode *dir,const char *name,int len,int mode, |
inode | 160 | include/linux/msdos_fs.h | struct inode **result); |
inode | 161 | include/linux/msdos_fs.h | extern int msdos_mkdir(struct inode *dir,const char *name,int len,int mode); |
inode | 162 | include/linux/msdos_fs.h | extern int msdos_rmdir(struct inode *dir,const char *name,int len); |
inode | 163 | include/linux/msdos_fs.h | extern int msdos_unlink(struct inode *dir,const char *name,int len); |
inode | 164 | include/linux/msdos_fs.h | extern int msdos_rename(struct inode *old_dir,const char *old_name,int old_len, |
inode | 165 | include/linux/msdos_fs.h | struct inode *new_dir,const char *new_name,int new_len); |
inode | 169 | include/linux/msdos_fs.h | extern void msdos_put_inode(struct inode *inode); |
inode | 174 | include/linux/msdos_fs.h | extern int msdos_bmap(struct inode *inode,int block); |
inode | 175 | include/linux/msdos_fs.h | extern void msdos_read_inode(struct inode *inode); |
inode | 176 | include/linux/msdos_fs.h | extern void msdos_write_inode(struct inode *inode); |
inode | 177 | include/linux/msdos_fs.h | extern int msdos_notify_change(int flags,struct inode *inode); |
inode | 188 | include/linux/msdos_fs.h | extern void msdos_truncate(struct inode *inode); |
inode | 13 | include/linux/msdos_fs_i.h | struct inode *i_depend; /* pointer to inode that depends on the |
inode | 15 | include/linux/msdos_fs_i.h | struct inode *i_old; /* pointer to the old inode this inode |
inode | 81 | include/linux/net.h | #define SOCK_INODE(S) ((struct inode *)(S)->dummy) |
inode | 53 | include/linux/nfs_fs.h | #define NFS_SERVER(inode) (&(inode)->i_sb->u.nfs_sb.s_server) |
inode | 54 | include/linux/nfs_fs.h | #define NFS_FH(inode) (&(inode)->u.nfs_i.fhandle) |
inode | 103 | include/linux/nfs_fs.h | extern struct inode *nfs_fhget(struct super_block *sb, struct nfs_fh *fhandle, |
inode | 105 | include/linux/nfs_fs.h | extern void nfs_refresh_inode(struct inode *inode, struct nfs_fattr *fattr); |
inode | 121 | include/linux/nfs_fs.h | extern int nfs_mmap(struct inode * inode, struct file * file, |
inode | 16 | include/linux/pipe_fs_i.h | #define PIPE_READ_WAIT(inode) ((inode).u.pipe_i.read_wait) |
inode | 17 | include/linux/pipe_fs_i.h | #define PIPE_WRITE_WAIT(inode) ((inode).u.pipe_i.write_wait) |
inode | 18 | include/linux/pipe_fs_i.h | #define PIPE_BASE(inode) ((inode).u.pipe_i.base) |
inode | 19 | include/linux/pipe_fs_i.h | #define PIPE_HEAD(inode) ((inode).u.pipe_i.head) |
inode | 20 | include/linux/pipe_fs_i.h | #define PIPE_TAIL(inode) ((inode).u.pipe_i.tail) |
inode | 21 | include/linux/pipe_fs_i.h | #define PIPE_RD_OPENERS(inode) ((inode).u.pipe_i.rd_openers) |
inode | 22 | include/linux/pipe_fs_i.h | #define PIPE_WR_OPENERS(inode) ((inode).u.pipe_i.wr_openers) |
inode | 23 | include/linux/pipe_fs_i.h | #define PIPE_READERS(inode) ((inode).u.pipe_i.readers) |
inode | 24 | include/linux/pipe_fs_i.h | #define PIPE_WRITERS(inode) ((inode).u.pipe_i.writers) |
inode | 25 | include/linux/pipe_fs_i.h | #define PIPE_SIZE(inode) ((PIPE_HEAD(inode)-PIPE_TAIL(inode))&(PAGE_SIZE-1)) |
inode | 26 | include/linux/pipe_fs_i.h | #define PIPE_EMPTY(inode) (PIPE_HEAD(inode)==PIPE_TAIL(inode)) |
inode | 27 | include/linux/pipe_fs_i.h | #define PIPE_FULL(inode) (PIPE_SIZE(inode)==(PAGE_SIZE-1)) |
inode | 19 | include/linux/proc_fs.h | extern void proc_put_inode(struct inode *); |
inode | 22 | include/linux/proc_fs.h | extern void proc_read_inode(struct inode *); |
inode | 23 | include/linux/proc_fs.h | extern void proc_write_inode(struct inode *); |
inode | 204 | include/linux/sched.h | struct inode * pwd; |
inode | 205 | include/linux/sched.h | struct inode * root; |
inode | 206 | include/linux/sched.h | struct inode * executable; |
inode | 368 | include/linux/tty.h | extern int tty_ioctl(struct inode *, struct file *, unsigned int, unsigned long); |
inode | 113 | include/linux/xd.h | static int xd_open (struct inode *inode,struct file *file); |
inode | 115 | include/linux/xd.h | static int xd_ioctl (struct inode *inode,struct file *file,unsigned int cmd,unsigned long arg); |
inode | 116 | include/linux/xd.h | static void xd_release (struct inode *inode,struct file *file); |
inode | 65 | include/linux/xia_fs.h | extern int xiafs_lookup(struct inode * dir,const char * name, int len, |
inode | 66 | include/linux/xia_fs.h | struct inode ** result); |
inode | 67 | include/linux/xia_fs.h | extern int xiafs_create(struct inode * dir,const char * name, int len, int mode, |
inode | 68 | include/linux/xia_fs.h | struct inode ** result); |
inode | 69 | include/linux/xia_fs.h | extern int xiafs_mkdir(struct inode * dir, const char * name, int len, int mode); |
inode | 70 | include/linux/xia_fs.h | extern int xiafs_rmdir(struct inode * dir, const char * name, int len); |
inode | 71 | include/linux/xia_fs.h | extern int xiafs_unlink(struct inode * dir, const char * name, int len); |
inode | 72 | include/linux/xia_fs.h | extern int xiafs_symlink(struct inode * inode, const char * name, int len, |
inode | 74 | include/linux/xia_fs.h | extern int xiafs_link(struct inode * oldinode, struct inode * dir, |
inode | 76 | include/linux/xia_fs.h | extern int xiafs_mknod(struct inode * dir, const char * name, int len, |
inode | 78 | include/linux/xia_fs.h | extern int xiafs_rename(struct inode * old_dir, const char * old_name, |
inode | 79 | include/linux/xia_fs.h | int old_len, struct inode * new_dir, |
inode | 81 | include/linux/xia_fs.h | extern struct inode * xiafs_new_inode(struct inode * dir); |
inode | 82 | include/linux/xia_fs.h | extern void xiafs_free_inode(struct inode * inode); |
inode | 88 | include/linux/xia_fs.h | extern int xiafs_bmap(struct inode *,int); |
inode | 90 | include/linux/xia_fs.h | extern struct buffer_head * xiafs_getblk(struct inode *, int, int); |
inode | 91 | include/linux/xia_fs.h | extern struct buffer_head * xiafs_bread(struct inode *, int, int); |
inode | 93 | include/linux/xia_fs.h | extern void xiafs_truncate(struct inode *); |
inode | 96 | include/linux/xia_fs.h | extern void xiafs_read_inode(struct inode *); |
inode | 97 | include/linux/xia_fs.h | extern void xiafs_write_inode(struct inode *); |
inode | 98 | include/linux/xia_fs.h | extern void xiafs_put_inode(struct inode *); |
inode | 100 | include/linux/xia_fs.h | extern int xiafs_sync_inode(struct inode *); |
inode | 101 | include/linux/xia_fs.h | extern int xiafs_sync_file(struct inode *, struct file *); |
inode | 762 | mm/memory.c | struct inode * inode, |
inode | 767 | mm/memory.c | if (!inode || inode->i_count < 2 || !area->vm_ops) |
inode | 774 | mm/memory.c | if (inode != (*p)->executable) { |
inode | 1152 | mm/memory.c | struct inode * inode = area->vm_inode; |
inode | 1161 | mm/memory.c | block >>= inode->i_sb->s_blocksize_bits; |
inode | 1164 | mm/memory.c | if (share_page(area, area->vm_task, inode, address, error_code, page)) { |
inode | 1175 | mm/memory.c | for (i=0, j=0; i< PAGE_SIZE ; j++, block++, i += inode->i_sb->s_blocksize) |
inode | 1176 | mm/memory.c | nr[j] = bmap(inode,block); |
inode | 1179 | mm/memory.c | page = bread_page(page, inode->i_dev, nr, inode->i_sb->s_blocksize, prot); |
inode | 1182 | mm/memory.c | if (share_page(area, area->vm_task, inode, address, error_code, page)) |
inode | 19 | mm/mmap.c | static int anon_map(struct inode *, struct file *, |
inode | 308 | mm/mmap.c | int generic_mmap(struct inode * inode, struct file * file, |
inode | 317 | mm/mmap.c | if (off & (inode->i_sb->s_blocksize - 1)) |
inode | 319 | mm/mmap.c | if (!inode->i_sb || !S_ISREG(inode->i_mode)) |
inode | 321 | mm/mmap.c | if (!inode->i_op || !inode->i_op->bmap) |
inode | 323 | mm/mmap.c | if (!(bh = bread(inode->i_dev,bmap(inode,0),inode->i_sb->s_blocksize))) |
inode | 325 | mm/mmap.c | if (!IS_RDONLY(inode)) { |
inode | 326 | mm/mmap.c | inode->i_atime = CURRENT_TIME; |
inode | 327 | mm/mmap.c | inode->i_dirt = 1; |
inode | 341 | mm/mmap.c | mpnt->vm_inode = inode; |
inode | 342 | mm/mmap.c | inode->i_count++; |
inode | 442 | mm/mmap.c | static int anon_map(struct inode *ino, struct file * file, |
inode | 477 | mm/mmap.c | return (struct inode *)data == m1->vm_inode; |
inode | 37 | mm/swap.c | struct inode * swap_file; |
inode | 666 | mm/swap.c | struct inode * inode; |
inode | 672 | mm/swap.c | i = namei(specialfile,&inode); |
inode | 680 | mm/swap.c | if (p->swap_file == inode) |
inode | 683 | mm/swap.c | if (!S_ISBLK(inode->i_mode)) |
inode | 685 | mm/swap.c | if (p->swap_device == inode->i_rdev) |
inode | 689 | mm/swap.c | iput(inode); |
inode | 718 | mm/swap.c | struct inode * swap_inode; |
inode | 1695 | net/inet/sock.c | inet_fioctl(struct inode *inode, struct file *file, |
inode | 1701 | net/inet/sock.c | minor = MINOR(inode->i_rdev); |
inode | 47 | net/socket.c | static int sock_lseek(struct inode *inode, struct file *file, off_t offset, |
inode | 49 | net/socket.c | static int sock_read(struct inode *inode, struct file *file, char *buf, |
inode | 51 | net/socket.c | static int sock_write(struct inode *inode, struct file *file, char *buf, |
inode | 53 | net/socket.c | static int sock_readdir(struct inode *inode, struct file *file, |
inode | 55 | net/socket.c | static void sock_close(struct inode *inode, struct file *file); |
inode | 56 | net/socket.c | static int sock_select(struct inode *inode, struct file *file, int which, select_table *seltable); |
inode | 57 | net/socket.c | static int sock_ioctl(struct inode *inode, struct file *file, |
inode | 97 | net/socket.c | get_fd(struct inode *inode) |
inode | 117 | net/socket.c | file->f_inode = inode; |
inode | 118 | net/socket.c | if (inode) inode->i_count++; |
inode | 137 | net/socket.c | socki_lookup(struct inode *inode) |
inode | 142 | net/socket.c | if (sock->state != SS_FREE && SOCK_INODE(sock) == inode) return(sock); |
inode | 252 | net/socket.c | sock_lseek(struct inode *inode, struct file *file, off_t offset, int whence) |
inode | 260 | net/socket.c | sock_read(struct inode *inode, struct file *file, char *ubuf, int size) |
inode | 265 | net/socket.c | if (!(sock = socki_lookup(inode))) { |
inode | 275 | net/socket.c | sock_write(struct inode *inode, struct file *file, char *ubuf, int size) |
inode | 280 | net/socket.c | if (!(sock = socki_lookup(inode))) { |
inode | 290 | net/socket.c | sock_readdir(struct inode *inode, struct file *file, struct dirent *dirent, |
inode | 299 | net/socket.c | sock_ioctl(struct inode *inode, struct file *file, unsigned int cmd, |
inode | 305 | net/socket.c | inode, cmd, arg)); |
inode | 306 | net/socket.c | if (!(sock = socki_lookup(inode))) { |
inode | 315 | net/socket.c | sock_select(struct inode *inode, struct file *file, int sel_type, select_table * wait) |
inode | 319 | net/socket.c | DPRINTF((net_debug, "NET: sock_select: inode = 0x%x, kind = %s\n", inode, |
inode | 322 | net/socket.c | if (!(sock = socki_lookup(inode))) { |
inode | 335 | net/socket.c | sock_close(struct inode *inode, struct file *file) |
inode | 340 | net/socket.c | inode, inode->i_count)); |
inode | 343 | net/socket.c | if (!inode) return; |
inode | 344 | net/socket.c | if (!(sock = socki_lookup(inode))) { |
inode | 996 | net/socket.c | net_fioctl(struct inode *inode, struct file *file, |
inode | 1002 | net/socket.c | switch(MINOR(inode->i_rdev)) { |
inode | 211 | net/unix/sock.c | struct inode *inode) |
inode | 219 | net/unix/sock.c | upd->inode == inode) return(upd); |
inode | 240 | net/unix/sock.c | upd->inode = NULL; |
inode | 332 | net/unix/sock.c | if (upd->inode) { |
inode | 333 | net/unix/sock.c | dprintf(1, "UNIX: release: releasing inode 0x%x\n", upd->inode); |
inode | 334 | net/unix/sock.c | iput(upd->inode); |
inode | 335 | net/unix/sock.c | upd->inode = NULL; |
inode | 370 | net/unix/sock.c | if (upd->sockaddr_len || upd->inode) { |
inode | 390 | net/unix/sock.c | if (i == 0) i = open_namei(fname, 0, S_IFSOCK, &upd->inode, NULL); |
inode | 400 | net/unix/sock.c | dprintf(1, "to inode 0x%x\n", upd->inode); |
inode | 417 | net/unix/sock.c | struct inode *inode; |
inode | 453 | net/unix/sock.c | i = open_namei(fname, 0, S_IFSOCK, &inode, NULL); |
inode | 459 | net/unix/sock.c | serv_upd = unix_data_lookup(&sockun, sockaddr_len, inode); |
inode | 460 | net/unix/sock.c | iput(inode); |
inode | 463 | net/unix/sock.c | fname, inode); |
inode | 793 | net/unix/sock.c | unix_open(struct inode * inode, struct file * file) |
inode | 798 | net/unix/sock.c | minor = MINOR(inode->i_rdev); |
inode | 806 | net/unix/sock.c | unix_close(struct inode * inode, struct file * file) |
inode | 813 | net/unix/sock.c | unix_ioctl(struct inode *inode, struct file *file, |
inode | 820 | net/unix/sock.c | minor = MINOR(inode->i_rdev); |
inode | 36 | net/unix/unix.h | struct inode *inode; |