tag | line | file | source code |
dir | 87 | fs/ext/namei.c | static struct buffer_head * ext_find_entry(struct inode * dir, |
dir | 96 | fs/ext/namei.c | if (!dir) |
dir | 105 | fs/ext/namei.c | bh = ext_bread(dir,0,0); |
dir | 114 | fs/ext/namei.c | while (offset < dir->i_size) { |
dir | 118 | fs/ext/namei.c | bh = ext_bread(dir,offset>>BLOCK_SIZE_BITS,0); |
dir | 129 | fs/ext/namei.c | dir->i_dev, dir->i_ino, offset, de->rec_len, de->name_len); |
dir | 136 | fs/ext/namei.c | if (offset + de->rec_len < dir->i_size) |
dir | 152 | fs/ext/namei.c | int ext_lookup(struct inode * dir,const char * name, int len, |
dir | 160 | fs/ext/namei.c | if (!dir) |
dir | 162 | fs/ext/namei.c | if (!S_ISDIR(dir->i_mode)) { |
dir | 163 | fs/ext/namei.c | iput(dir); |
dir | 166 | fs/ext/namei.c | if (!(bh = ext_find_entry(dir,name,len,&de,NULL,NULL))) { |
dir | 167 | fs/ext/namei.c | iput(dir); |
dir | 172 | fs/ext/namei.c | if (!(*result = iget(dir->i_sb,ino))) { |
dir | 173 | fs/ext/namei.c | iput(dir); |
dir | 176 | fs/ext/namei.c | iput(dir); |
dir | 190 | fs/ext/namei.c | static struct buffer_head * ext_add_entry(struct inode * dir, |
dir | 200 | fs/ext/namei.c | if (!dir) |
dir | 211 | fs/ext/namei.c | bh = ext_bread(dir,0,0); |
dir | 218 | fs/ext/namei.c | if ((char *)de >= BLOCK_SIZE+bh->b_data && offset < dir->i_size) { |
dir | 224 | fs/ext/namei.c | bh = ext_bread(dir,offset>>BLOCK_SIZE_BITS,1); |
dir | 229 | fs/ext/namei.c | if (offset >= dir->i_size) { |
dir | 242 | fs/ext/namei.c | dir->i_size += de->rec_len; |
dir | 243 | fs/ext/namei.c | dir->i_dirt = 1; |
dir | 244 | fs/ext/namei.c | dir->i_ctime = CURRENT_TIME; |
dir | 252 | fs/ext/namei.c | bh = ext_bread(dir,offset>>BLOCK_SIZE_BITS,1); |
dir | 260 | fs/ext/namei.c | dir->i_size += de->rec_len; |
dir | 261 | fs/ext/namei.c | dir->i_dirt = 1; |
dir | 262 | fs/ext/namei.c | dir->i_ctime = CURRENT_TIME; |
dir | 268 | fs/ext/namei.c | dir->i_dev, dir->i_ino, offset, de->rec_len, de->name_len); |
dir | 285 | fs/ext/namei.c | dir->i_mtime = CURRENT_TIME; |
dir | 300 | fs/ext/namei.c | int ext_create(struct inode * dir,const char * name, int len, int mode, |
dir | 308 | fs/ext/namei.c | if (!dir) |
dir | 310 | fs/ext/namei.c | inode = ext_new_inode(dir->i_sb); |
dir | 312 | fs/ext/namei.c | iput(dir); |
dir | 318 | fs/ext/namei.c | bh = ext_add_entry(dir,name,len,&de); |
dir | 323 | fs/ext/namei.c | iput(dir); |
dir | 329 | fs/ext/namei.c | iput(dir); |
dir | 334 | fs/ext/namei.c | int ext_mknod(struct inode * dir, const char * name, int len, int mode, int rdev) |
dir | 340 | fs/ext/namei.c | if (!dir) |
dir | 342 | fs/ext/namei.c | bh = ext_find_entry(dir,name,len,&de,NULL,NULL); |
dir | 345 | fs/ext/namei.c | iput(dir); |
dir | 348 | fs/ext/namei.c | inode = ext_new_inode(dir->i_sb); |
dir | 350 | fs/ext/namei.c | iput(dir); |
dir | 378 | fs/ext/namei.c | bh = ext_add_entry(dir,name,len,&de); |
dir | 383 | fs/ext/namei.c | iput(dir); |
dir | 389 | fs/ext/namei.c | iput(dir); |
dir | 394 | fs/ext/namei.c | int ext_mkdir(struct inode * dir, const char * name, int len, int mode) |
dir | 400 | fs/ext/namei.c | bh = ext_find_entry(dir,name,len,&de,NULL,NULL); |
dir | 403 | fs/ext/namei.c | iput(dir); |
dir | 406 | fs/ext/namei.c | inode = ext_new_inode(dir->i_sb); |
dir | 408 | fs/ext/namei.c | iput(dir); |
dir | 420 | fs/ext/namei.c | iput(dir); |
dir | 432 | fs/ext/namei.c | de->inode = dir->i_ino; |
dir | 441 | fs/ext/namei.c | bh = ext_add_entry(dir,name,len,&de); |
dir | 443 | fs/ext/namei.c | iput(dir); |
dir | 450 | fs/ext/namei.c | dir->i_nlink++; |
dir | 451 | fs/ext/namei.c | dir->i_dirt = 1; |
dir | 452 | fs/ext/namei.c | iput(dir); |
dir | 518 | fs/ext/namei.c | int ext_rmdir(struct inode * dir, const char * name, int len) |
dir | 526 | fs/ext/namei.c | bh = ext_find_entry(dir,name,len,&de,&pde,&nde); |
dir | 531 | fs/ext/namei.c | if (!(inode = iget(dir->i_sb, de->inode))) |
dir | 533 | fs/ext/namei.c | if ((dir->i_mode & S_ISVTX) && current->euid && |
dir | 536 | fs/ext/namei.c | if (inode->i_dev != dir->i_dev) |
dir | 538 | fs/ext/namei.c | if (inode == dir) /* we may not delete ".", but "../dir" is ok */ |
dir | 560 | fs/ext/namei.c | dir->i_nlink--; |
dir | 561 | fs/ext/namei.c | dir->i_ctime = dir->i_mtime = CURRENT_TIME; |
dir | 562 | fs/ext/namei.c | dir->i_dirt=1; |
dir | 565 | fs/ext/namei.c | iput(dir); |
dir | 571 | fs/ext/namei.c | int ext_unlink(struct inode * dir, const char * name, int len) |
dir | 580 | fs/ext/namei.c | bh = ext_find_entry(dir,name,len,&de,&pde,&nde); |
dir | 583 | fs/ext/namei.c | if (!(inode = iget(dir->i_sb, de->inode))) |
dir | 586 | fs/ext/namei.c | if ((dir->i_mode & S_ISVTX) && !suser() && |
dir | 588 | fs/ext/namei.c | current->euid != dir->i_uid) |
dir | 608 | fs/ext/namei.c | iput(dir); |
dir | 612 | fs/ext/namei.c | int ext_symlink(struct inode * dir, const char * name, int len, const char * symname) |
dir | 620 | fs/ext/namei.c | if (!(inode = ext_new_inode(dir->i_sb))) { |
dir | 621 | fs/ext/namei.c | iput(dir); |
dir | 628 | fs/ext/namei.c | iput(dir); |
dir | 642 | fs/ext/namei.c | bh = ext_find_entry(dir,name,len,&de,NULL,NULL); |
dir | 648 | fs/ext/namei.c | iput(dir); |
dir | 651 | fs/ext/namei.c | bh = ext_add_entry(dir,name,len,&de); |
dir | 656 | fs/ext/namei.c | iput(dir); |
dir | 662 | fs/ext/namei.c | iput(dir); |
dir | 667 | fs/ext/namei.c | int ext_link(struct inode * oldinode, struct inode * dir, const char * name, int len) |
dir | 674 | fs/ext/namei.c | iput(dir); |
dir | 679 | fs/ext/namei.c | iput(dir); |
dir | 682 | fs/ext/namei.c | bh = ext_find_entry(dir,name,len,&de,NULL,NULL); |
dir | 685 | fs/ext/namei.c | iput(dir); |
dir | 689 | fs/ext/namei.c | bh = ext_add_entry(dir,name,len,&de); |
dir | 691 | fs/ext/namei.c | iput(dir); |
dir | 698 | fs/ext/namei.c | iput(dir); |
dir | 46 | fs/ext/symlink.c | static int ext_follow_link(struct inode * dir, struct inode * inode, |
dir | 54 | fs/ext/symlink.c | if (!dir) { |
dir | 55 | fs/ext/symlink.c | dir = current->root; |
dir | 56 | fs/ext/symlink.c | dir->i_count++; |
dir | 59 | fs/ext/symlink.c | iput(dir); |
dir | 63 | fs/ext/symlink.c | iput(dir); |
dir | 68 | fs/ext/symlink.c | iput(dir); |
dir | 74 | fs/ext/symlink.c | iput(dir); |
dir | 81 | fs/ext/symlink.c | error = open_namei(bh->b_data,flag,mode,res_inode,dir); |
dir | 58 | fs/minix/namei.c | static struct buffer_head * minix_find_entry(struct inode * dir, |
dir | 66 | fs/minix/namei.c | if (!dir) |
dir | 75 | fs/minix/namei.c | entries = dir->i_size / (sizeof (struct minix_dir_entry)); |
dir | 76 | fs/minix/namei.c | bh = minix_bread(dir,0,0); |
dir | 84 | fs/minix/namei.c | bh = minix_bread(dir,i/MINIX_DIR_ENTRIES_PER_BLOCK,0); |
dir | 102 | fs/minix/namei.c | int minix_lookup(struct inode * dir,const char * name, int len, |
dir | 110 | fs/minix/namei.c | if (!dir) |
dir | 112 | fs/minix/namei.c | if (!S_ISDIR(dir->i_mode)) { |
dir | 113 | fs/minix/namei.c | iput(dir); |
dir | 116 | fs/minix/namei.c | if (!(bh = minix_find_entry(dir,name,len,&de))) { |
dir | 117 | fs/minix/namei.c | iput(dir); |
dir | 122 | fs/minix/namei.c | if (!(*result = iget(dir->i_sb,ino))) { |
dir | 123 | fs/minix/namei.c | iput(dir); |
dir | 126 | fs/minix/namei.c | iput(dir); |
dir | 140 | fs/minix/namei.c | static struct buffer_head * minix_add_entry(struct inode * dir, |
dir | 148 | fs/minix/namei.c | if (!dir) |
dir | 159 | fs/minix/namei.c | bh = minix_bread(dir,0,0); |
dir | 167 | fs/minix/namei.c | bh = minix_bread(dir,i/MINIX_DIR_ENTRIES_PER_BLOCK,1); |
dir | 172 | fs/minix/namei.c | if (i*sizeof(struct minix_dir_entry) >= dir->i_size) { |
dir | 174 | fs/minix/namei.c | dir->i_size = (i+1)*sizeof(struct minix_dir_entry); |
dir | 175 | fs/minix/namei.c | dir->i_dirt = 1; |
dir | 176 | fs/minix/namei.c | dir->i_ctime = CURRENT_TIME; |
dir | 179 | fs/minix/namei.c | dir->i_mtime = CURRENT_TIME; |
dir | 193 | fs/minix/namei.c | int minix_create(struct inode * dir,const char * name, int len, int mode, |
dir | 201 | fs/minix/namei.c | if (!dir) |
dir | 203 | fs/minix/namei.c | inode = minix_new_inode(dir->i_sb); |
dir | 205 | fs/minix/namei.c | iput(dir); |
dir | 211 | fs/minix/namei.c | bh = minix_add_entry(dir,name,len,&de); |
dir | 216 | fs/minix/namei.c | iput(dir); |
dir | 222 | fs/minix/namei.c | iput(dir); |
dir | 227 | fs/minix/namei.c | int minix_mknod(struct inode * dir, const char * name, int len, int mode, int rdev) |
dir | 233 | fs/minix/namei.c | if (!dir) |
dir | 235 | fs/minix/namei.c | bh = minix_find_entry(dir,name,len,&de); |
dir | 238 | fs/minix/namei.c | iput(dir); |
dir | 241 | fs/minix/namei.c | inode = minix_new_inode(dir->i_sb); |
dir | 243 | fs/minix/namei.c | iput(dir); |
dir | 271 | fs/minix/namei.c | bh = minix_add_entry(dir,name,len,&de); |
dir | 276 | fs/minix/namei.c | iput(dir); |
dir | 282 | fs/minix/namei.c | iput(dir); |
dir | 287 | fs/minix/namei.c | int minix_mkdir(struct inode * dir, const char * name, int len, int mode) |
dir | 293 | fs/minix/namei.c | bh = minix_find_entry(dir,name,len,&de); |
dir | 296 | fs/minix/namei.c | iput(dir); |
dir | 299 | fs/minix/namei.c | inode = minix_new_inode(dir->i_sb); |
dir | 301 | fs/minix/namei.c | iput(dir); |
dir | 309 | fs/minix/namei.c | iput(dir); |
dir | 319 | fs/minix/namei.c | de->inode = dir->i_ino; |
dir | 326 | fs/minix/namei.c | bh = minix_add_entry(dir,name,len,&de); |
dir | 328 | fs/minix/namei.c | iput(dir); |
dir | 335 | fs/minix/namei.c | dir->i_nlink++; |
dir | 336 | fs/minix/namei.c | dir->i_dirt = 1; |
dir | 337 | fs/minix/namei.c | iput(dir); |
dir | 386 | fs/minix/namei.c | int minix_rmdir(struct inode * dir, const char * name, int len) |
dir | 394 | fs/minix/namei.c | bh = minix_find_entry(dir,name,len,&de); |
dir | 399 | fs/minix/namei.c | if (!(inode = iget(dir->i_sb, de->inode))) |
dir | 401 | fs/minix/namei.c | if ((dir->i_mode & S_ISVTX) && current->euid && |
dir | 404 | fs/minix/namei.c | if (inode->i_dev != dir->i_dev) |
dir | 406 | fs/minix/namei.c | if (inode == dir) /* we may not delete ".", but "../dir" is ok */ |
dir | 426 | fs/minix/namei.c | dir->i_nlink--; |
dir | 427 | fs/minix/namei.c | dir->i_ctime = dir->i_mtime = CURRENT_TIME; |
dir | 428 | fs/minix/namei.c | dir->i_dirt=1; |
dir | 431 | fs/minix/namei.c | iput(dir); |
dir | 437 | fs/minix/namei.c | int minix_unlink(struct inode * dir, const char * name, int len) |
dir | 446 | fs/minix/namei.c | bh = minix_find_entry(dir,name,len,&de); |
dir | 449 | fs/minix/namei.c | if (!(inode = iget(dir->i_sb, de->inode))) |
dir | 452 | fs/minix/namei.c | if ((dir->i_mode & S_ISVTX) && !suser() && |
dir | 454 | fs/minix/namei.c | current->euid != dir->i_uid) |
dir | 472 | fs/minix/namei.c | iput(dir); |
dir | 476 | fs/minix/namei.c | int minix_symlink(struct inode * dir, const char * name, int len, const char * symname) |
dir | 484 | fs/minix/namei.c | if (!(inode = minix_new_inode(dir->i_sb))) { |
dir | 485 | fs/minix/namei.c | iput(dir); |
dir | 492 | fs/minix/namei.c | iput(dir); |
dir | 506 | fs/minix/namei.c | bh = minix_find_entry(dir,name,len,&de); |
dir | 512 | fs/minix/namei.c | iput(dir); |
dir | 515 | fs/minix/namei.c | bh = minix_add_entry(dir,name,len,&de); |
dir | 520 | fs/minix/namei.c | iput(dir); |
dir | 526 | fs/minix/namei.c | iput(dir); |
dir | 531 | fs/minix/namei.c | int minix_link(struct inode * oldinode, struct inode * dir, const char * name, int len) |
dir | 538 | fs/minix/namei.c | iput(dir); |
dir | 543 | fs/minix/namei.c | iput(dir); |
dir | 546 | fs/minix/namei.c | bh = minix_find_entry(dir,name,len,&de); |
dir | 549 | fs/minix/namei.c | iput(dir); |
dir | 553 | fs/minix/namei.c | bh = minix_add_entry(dir,name,len,&de); |
dir | 555 | fs/minix/namei.c | iput(dir); |
dir | 562 | fs/minix/namei.c | iput(dir); |
dir | 40 | fs/minix/symlink.c | static int minix_follow_link(struct inode * dir, struct inode * inode, |
dir | 48 | fs/minix/symlink.c | if (!dir) { |
dir | 49 | fs/minix/symlink.c | dir = current->root; |
dir | 50 | fs/minix/symlink.c | dir->i_count++; |
dir | 53 | fs/minix/symlink.c | iput(dir); |
dir | 57 | fs/minix/symlink.c | iput(dir); |
dir | 63 | fs/minix/symlink.c | iput(dir); |
dir | 68 | fs/minix/symlink.c | iput(dir); |
dir | 75 | fs/minix/symlink.c | error = open_namei(bh->b_data,flag,mode,res_inode,dir); |
dir | 238 | fs/msdos/misc.c | int msdos_get_entry(struct inode *dir,int *pos,struct buffer_head **bh, |
dir | 246 | fs/msdos/misc.c | if ((sector = msdos_smap(dir,offset >> SECTOR_BITS)) == -1) |
dir | 253 | fs/msdos/misc.c | if (!(*bh = msdos_sread(dir->i_dev,sector,&data))) { |
dir | 268 | fs/msdos/misc.c | int msdos_scan(struct inode *dir,char *name,struct buffer_head **res_bh, |
dir | 277 | fs/msdos/misc.c | while ((*ino = msdos_get_entry(dir,&pos,res_bh,&de)) > -1) { |
dir | 285 | fs/msdos/misc.c | if (!(inode = iget(dir->i_sb,*ino))) break; |
dir | 390 | fs/msdos/misc.c | int msdos_parent_ino(struct inode *dir,int locked) |
dir | 394 | fs/msdos/misc.c | if (!S_ISDIR(dir->i_mode)) panic("Non-directory fed to m_p_i"); |
dir | 395 | fs/msdos/misc.c | if (dir->i_ino == MSDOS_ROOT_INO) return dir->i_ino; |
dir | 397 | fs/msdos/misc.c | if ((current = raw_scan(dir->i_sb,MSDOS_I(dir)->i_start,MSDOS_DOTDOT,0, |
dir | 404 | fs/msdos/misc.c | if ((prev = raw_scan(dir->i_sb,current,MSDOS_DOTDOT,0,NULL)) < |
dir | 409 | fs/msdos/misc.c | if ((error = raw_scan(dir->i_sb,prev,NULL,current,&this)) < 0) { |
dir | 419 | fs/msdos/misc.c | int msdos_subdirs(struct inode *dir) |
dir | 424 | fs/msdos/misc.c | if (dir->i_ino == MSDOS_ROOT_INO) |
dir | 425 | fs/msdos/misc.c | (void) raw_scan_root(dir->i_sb,NULL,&count,NULL); |
dir | 427 | fs/msdos/misc.c | if (!MSDOS_I(dir)->i_start) return 0; /* in mkdir */ |
dir | 428 | fs/msdos/misc.c | else (void) raw_scan_nonroot(dir->i_sb,MSDOS_I(dir)->i_start, |
dir | 99 | fs/msdos/namei.c | static int msdos_find(struct inode *dir,const char *name,int len, |
dir | 105 | fs/msdos/namei.c | if ((res = msdos_format_name(MSDOS_SB(dir->i_sb)->name_check,name,len, |
dir | 107 | fs/msdos/namei.c | return msdos_scan(dir,msdos_name,bh,de,ino); |
dir | 111 | fs/msdos/namei.c | int msdos_lookup(struct inode *dir,const char *name,int len, |
dir | 120 | fs/msdos/namei.c | if (!dir) return -ENOENT; |
dir | 121 | fs/msdos/namei.c | if (!S_ISDIR(dir->i_mode)) { |
dir | 122 | fs/msdos/namei.c | iput(dir); |
dir | 126 | fs/msdos/namei.c | *result = dir; |
dir | 131 | fs/msdos/namei.c | ino = msdos_parent_ino(dir,0); |
dir | 132 | fs/msdos/namei.c | iput(dir); |
dir | 134 | fs/msdos/namei.c | if (!(*result = iget(dir->i_sb,ino))) return -EACCES; |
dir | 137 | fs/msdos/namei.c | if ((res = msdos_find(dir,name,len,&bh,&de,&ino)) < 0) { |
dir | 138 | fs/msdos/namei.c | iput(dir); |
dir | 143 | fs/msdos/namei.c | if (!(*result = iget(dir->i_sb,ino))) { |
dir | 144 | fs/msdos/namei.c | iput(dir); |
dir | 149 | fs/msdos/namei.c | iput(dir); |
dir | 158 | fs/msdos/namei.c | iput(dir); |
dir | 165 | fs/msdos/namei.c | static int msdos_create_entry(struct inode *dir,char *name,int is_dir, |
dir | 172 | fs/msdos/namei.c | if ((res = msdos_scan(dir,NULL,&bh,&de,&ino)) < 0) { |
dir | 173 | fs/msdos/namei.c | if (dir->i_ino == MSDOS_ROOT_INO) return -ENOSPC; |
dir | 174 | fs/msdos/namei.c | if ((res = msdos_add_cluster(dir)) < 0) return res; |
dir | 175 | fs/msdos/namei.c | if ((res = msdos_scan(dir,NULL,&bh,&de,&ino)) < 0) return res; |
dir | 183 | fs/msdos/namei.c | if (*result = iget(dir->i_sb,ino)) msdos_read_inode(*result); |
dir | 193 | fs/msdos/namei.c | int msdos_create(struct inode *dir,const char *name,int len,int mode, |
dir | 201 | fs/msdos/namei.c | if (!dir) return -ENOENT; |
dir | 202 | fs/msdos/namei.c | if ((res = msdos_format_name(MSDOS_SB(dir->i_sb)->name_check,name,len, |
dir | 204 | fs/msdos/namei.c | iput(dir); |
dir | 208 | fs/msdos/namei.c | if (msdos_scan(dir,msdos_name,&bh,&de,&ino) >= 0) { |
dir | 211 | fs/msdos/namei.c | iput(dir); |
dir | 214 | fs/msdos/namei.c | res = msdos_create_entry(dir,msdos_name,S_ISDIR(mode),result); |
dir | 216 | fs/msdos/namei.c | iput(dir); |
dir | 241 | fs/msdos/namei.c | int msdos_mkdir(struct inode *dir,const char *name,int len,int mode) |
dir | 249 | fs/msdos/namei.c | if ((res = msdos_format_name(MSDOS_SB(dir->i_sb)->name_check,name,len, |
dir | 251 | fs/msdos/namei.c | iput(dir); |
dir | 255 | fs/msdos/namei.c | if (msdos_scan(dir,msdos_name,&bh,&de,&ino) >= 0) { |
dir | 258 | fs/msdos/namei.c | iput(dir); |
dir | 261 | fs/msdos/namei.c | if ((res = msdos_create_entry(dir,msdos_name,1,&inode)) < 0) { |
dir | 263 | fs/msdos/namei.c | iput(dir); |
dir | 266 | fs/msdos/namei.c | dir->i_nlink++; |
dir | 280 | fs/msdos/namei.c | dot->i_size = dir->i_size; |
dir | 281 | fs/msdos/namei.c | MSDOS_I(dot)->i_start = MSDOS_I(dir)->i_start; |
dir | 282 | fs/msdos/namei.c | dot->i_nlink = dir->i_nlink; |
dir | 287 | fs/msdos/namei.c | iput(dir); |
dir | 291 | fs/msdos/namei.c | if (msdos_rmdir(dir,name,len) < 0) panic("rmdir in mkdir failed"); |
dir | 297 | fs/msdos/namei.c | int msdos_rmdir(struct inode *dir,const char *name,int len) |
dir | 309 | fs/msdos/namei.c | if ((res = msdos_find(dir,name,len,&bh,&de,&ino)) < 0) goto rmdir_done; |
dir | 311 | fs/msdos/namei.c | if (!(inode = iget(dir->i_sb,ino))) goto rmdir_done; |
dir | 315 | fs/msdos/namei.c | if (dir->i_dev != inode->i_dev || dir == inode) goto rmdir_done; |
dir | 329 | fs/msdos/namei.c | dir->i_mtime = CURRENT_TIME; |
dir | 330 | fs/msdos/namei.c | dir->i_nlink--; |
dir | 331 | fs/msdos/namei.c | inode->i_dirt = dir->i_dirt = 1; |
dir | 337 | fs/msdos/namei.c | iput(dir); |
dir | 343 | fs/msdos/namei.c | int msdos_unlink(struct inode *dir,const char *name,int len) |
dir | 352 | fs/msdos/namei.c | if ((res = msdos_find(dir,name,len,&bh,&de,&ino)) < 0) |
dir | 354 | fs/msdos/namei.c | if (!(inode = iget(dir->i_sb,ino))) { |
dir | 370 | fs/msdos/namei.c | iput(dir); |
dir | 56 | fs/namei.c | int lookup(struct inode * dir,const char * name, int len, |
dir | 63 | fs/namei.c | if (dir == current->root) |
dir | 65 | fs/namei.c | else if ((sb = dir->i_sb) && (dir == sb->s_mounted)) { |
dir | 66 | fs/namei.c | sb = dir->i_sb; |
dir | 67 | fs/namei.c | iput(dir); |
dir | 68 | fs/namei.c | if (dir = sb->s_covered) |
dir | 69 | fs/namei.c | dir->i_count++; |
dir | 72 | fs/namei.c | if (!dir) |
dir | 74 | fs/namei.c | if (!dir->i_op || !dir->i_op->lookup) { |
dir | 75 | fs/namei.c | iput(dir); |
dir | 78 | fs/namei.c | if (!permission(dir,MAY_EXEC)) { |
dir | 79 | fs/namei.c | iput(dir); |
dir | 83 | fs/namei.c | *result = dir; |
dir | 86 | fs/namei.c | return dir->i_op->lookup(dir,name,len,result); |
dir | 89 | fs/namei.c | int follow_link(struct inode * dir, struct inode * inode, |
dir | 92 | fs/namei.c | if (!dir || !inode) { |
dir | 93 | fs/namei.c | iput(dir); |
dir | 99 | fs/namei.c | iput(dir); |
dir | 103 | fs/namei.c | return inode->i_op->follow_link(dir,inode,flag,mode,res_inode); |
dir | 215 | fs/namei.c | struct inode * dir, *inode; |
dir | 220 | fs/namei.c | error = dir_namei(pathname,&namelen,&basename,base,&dir); |
dir | 225 | fs/namei.c | *res_inode=dir; |
dir | 228 | fs/namei.c | iput(dir); |
dir | 231 | fs/namei.c | dir->i_count++; /* lookup eats the dir */ |
dir | 232 | fs/namei.c | error = lookup(dir,basename,namelen,&inode); |
dir | 235 | fs/namei.c | iput(dir); |
dir | 238 | fs/namei.c | if (!permission(dir,MAY_WRITE)) { |
dir | 239 | fs/namei.c | iput(dir); |
dir | 242 | fs/namei.c | if (!dir->i_op || !dir->i_op->create) { |
dir | 243 | fs/namei.c | iput(dir); |
dir | 246 | fs/namei.c | if (IS_RDONLY(dir)) { |
dir | 247 | fs/namei.c | iput(dir); |
dir | 250 | fs/namei.c | return dir->i_op->create(dir,basename,namelen,mode,res_inode); |
dir | 253 | fs/namei.c | iput(dir); |
dir | 257 | fs/namei.c | if (error = follow_link(dir,inode,flag,mode,&inode)) |
dir | 300 | fs/namei.c | struct inode * dir; |
dir | 302 | fs/namei.c | error = dir_namei(filename,&namelen,&basename, NULL, &dir); |
dir | 306 | fs/namei.c | iput(dir); |
dir | 309 | fs/namei.c | if (IS_RDONLY(dir)) { |
dir | 310 | fs/namei.c | iput(dir); |
dir | 313 | fs/namei.c | if (!permission(dir,MAY_WRITE)) { |
dir | 314 | fs/namei.c | iput(dir); |
dir | 317 | fs/namei.c | if (!dir->i_op || !dir->i_op->mknod) { |
dir | 318 | fs/namei.c | iput(dir); |
dir | 321 | fs/namei.c | return dir->i_op->mknod(dir,basename,namelen,mode,dev); |
dir | 335 | fs/namei.c | struct inode * dir; |
dir | 337 | fs/namei.c | error = dir_namei(pathname,&namelen,&basename,NULL,&dir); |
dir | 341 | fs/namei.c | iput(dir); |
dir | 344 | fs/namei.c | if (IS_RDONLY(dir)) { |
dir | 345 | fs/namei.c | iput(dir); |
dir | 348 | fs/namei.c | if (!permission(dir,MAY_WRITE)) { |
dir | 349 | fs/namei.c | iput(dir); |
dir | 352 | fs/namei.c | if (!dir->i_op || !dir->i_op->mkdir) { |
dir | 353 | fs/namei.c | iput(dir); |
dir | 356 | fs/namei.c | return dir->i_op->mkdir(dir,basename,namelen,mode); |
dir | 363 | fs/namei.c | struct inode * dir; |
dir | 365 | fs/namei.c | error = dir_namei(name,&namelen,&basename,NULL,&dir); |
dir | 369 | fs/namei.c | iput(dir); |
dir | 372 | fs/namei.c | if (IS_RDONLY(dir)) { |
dir | 373 | fs/namei.c | iput(dir); |
dir | 376 | fs/namei.c | if (!permission(dir,MAY_WRITE | MAY_EXEC)) { |
dir | 377 | fs/namei.c | iput(dir); |
dir | 380 | fs/namei.c | if (!dir->i_op || !dir->i_op->rmdir) { |
dir | 381 | fs/namei.c | iput(dir); |
dir | 384 | fs/namei.c | return dir->i_op->rmdir(dir,basename,namelen); |
dir | 391 | fs/namei.c | struct inode * dir; |
dir | 393 | fs/namei.c | error = dir_namei(name,&namelen,&basename,NULL,&dir); |
dir | 397 | fs/namei.c | iput(dir); |
dir | 400 | fs/namei.c | if (IS_RDONLY(dir)) { |
dir | 401 | fs/namei.c | iput(dir); |
dir | 404 | fs/namei.c | if (!permission(dir,MAY_WRITE | MAY_EXEC)) { |
dir | 405 | fs/namei.c | iput(dir); |
dir | 408 | fs/namei.c | if (!dir->i_op || !dir->i_op->unlink) { |
dir | 409 | fs/namei.c | iput(dir); |
dir | 412 | fs/namei.c | return dir->i_op->unlink(dir,basename,namelen); |
dir | 417 | fs/namei.c | struct inode * dir; |
dir | 421 | fs/namei.c | error = dir_namei(newname,&namelen,&basename,NULL,&dir); |
dir | 425 | fs/namei.c | iput(dir); |
dir | 428 | fs/namei.c | if (IS_RDONLY(dir)) { |
dir | 429 | fs/namei.c | iput(dir); |
dir | 432 | fs/namei.c | if (!permission(dir,MAY_WRITE)) { |
dir | 433 | fs/namei.c | iput(dir); |
dir | 436 | fs/namei.c | if (!dir->i_op || !dir->i_op->symlink) { |
dir | 437 | fs/namei.c | iput(dir); |
dir | 440 | fs/namei.c | return dir->i_op->symlink(dir,basename,namelen,oldname); |
dir | 445 | fs/namei.c | struct inode * oldinode, * dir; |
dir | 452 | fs/namei.c | error = dir_namei(newname,&namelen,&basename,NULL,&dir); |
dir | 459 | fs/namei.c | iput(dir); |
dir | 462 | fs/namei.c | if (IS_RDONLY(dir)) { |
dir | 464 | fs/namei.c | iput(dir); |
dir | 467 | fs/namei.c | if (dir->i_dev != oldinode->i_dev) { |
dir | 468 | fs/namei.c | iput(dir); |
dir | 472 | fs/namei.c | if (!permission(dir,MAY_WRITE)) { |
dir | 473 | fs/namei.c | iput(dir); |
dir | 477 | fs/namei.c | if (!dir->i_op || !dir->i_op->link) { |
dir | 478 | fs/namei.c | iput(dir); |
dir | 482 | fs/namei.c | return dir->i_op->link(oldinode, dir, basename, namelen); |
dir | 90 | fs/proc/base.c | static int proc_lookupbase(struct inode * dir,const char * name, int len, |
dir | 97 | fs/proc/base.c | if (!dir) |
dir | 99 | fs/proc/base.c | if (!S_ISDIR(dir->i_mode)) { |
dir | 100 | fs/proc/base.c | iput(dir); |
dir | 103 | fs/proc/base.c | ino = dir->i_ino; |
dir | 109 | fs/proc/base.c | iput(dir); |
dir | 120 | fs/proc/base.c | iput(dir); |
dir | 123 | fs/proc/base.c | if (!(*result = iget(dir->i_sb,ino))) { |
dir | 124 | fs/proc/base.c | iput(dir); |
dir | 127 | fs/proc/base.c | iput(dir); |
dir | 51 | fs/proc/fd.c | static int proc_lookupfd(struct inode * dir,const char * name, int len, |
dir | 60 | fs/proc/fd.c | ino = dir->i_ino; |
dir | 64 | fs/proc/fd.c | if (!dir) |
dir | 66 | fs/proc/fd.c | sb = dir->i_sb; |
dir | 67 | fs/proc/fd.c | if (!pid || ino > 1 || !S_ISDIR(dir->i_mode)) { |
dir | 68 | fs/proc/fd.c | iput(dir); |
dir | 74 | fs/proc/fd.c | *result = dir; |
dir | 78 | fs/proc/fd.c | iput(dir); |
dir | 81 | fs/proc/fd.c | iput(dir); |
dir | 84 | fs/proc/fd.c | iput(dir); |
dir | 40 | fs/proc/link.c | static int proc_follow_link(struct inode * dir, struct inode * inode, |
dir | 48 | fs/proc/link.c | if (dir) |
dir | 49 | fs/proc/link.c | iput(dir); |
dir | 51 | fs/proc/root.c | static int proc_lookuproot(struct inode * dir,const char * name, int len, |
dir | 58 | fs/proc/root.c | if (!dir) |
dir | 60 | fs/proc/root.c | if (!S_ISDIR(dir->i_mode)) { |
dir | 61 | fs/proc/root.c | iput(dir); |
dir | 67 | fs/proc/root.c | *result = dir; |
dir | 88 | fs/proc/root.c | iput(dir); |
dir | 92 | fs/proc/root.c | if (!(*result = iget(dir->i_sb,ino))) { |
dir | 93 | fs/proc/root.c | iput(dir); |
dir | 96 | fs/proc/root.c | iput(dir); |
dir | 223 | fs/super.c | static int do_mount(dev_t dev, const char * dir, char * type, int flags, void * data) |
dir | 229 | fs/super.c | error = namei(dir,&dir_i); |
dir | 64 | include/linux/ext_fs.h | extern int ext_lookup(struct inode * dir,const char * name, int len, |
dir | 66 | include/linux/ext_fs.h | extern int ext_create(struct inode * dir,const char * name, int len, int mode, |
dir | 68 | include/linux/ext_fs.h | extern int ext_mkdir(struct inode * dir, const char * name, int len, int mode); |
dir | 69 | include/linux/ext_fs.h | extern int ext_rmdir(struct inode * dir, const char * name, int len); |
dir | 70 | include/linux/ext_fs.h | extern int ext_unlink(struct inode * dir, const char * name, int len); |
dir | 73 | include/linux/ext_fs.h | extern int ext_link(struct inode * oldinode, struct inode * dir, const char * name, int len); |
dir | 74 | include/linux/ext_fs.h | extern int ext_mknod(struct inode * dir, const char * name, int len, int mode, int rdev); |
dir | 72 | include/linux/kd.h | char dir; /* direction in vs out */ |
dir | 47 | include/linux/minix_fs.h | extern int minix_lookup(struct inode * dir,const char * name, int len, |
dir | 49 | include/linux/minix_fs.h | extern int minix_create(struct inode * dir,const char * name, int len, int mode, |
dir | 51 | include/linux/minix_fs.h | extern int minix_mkdir(struct inode * dir, const char * name, int len, int mode); |
dir | 52 | include/linux/minix_fs.h | extern int minix_rmdir(struct inode * dir, const char * name, int len); |
dir | 53 | include/linux/minix_fs.h | extern int minix_unlink(struct inode * dir, const char * name, int len); |
dir | 56 | include/linux/minix_fs.h | extern int minix_link(struct inode * oldinode, struct inode * dir, const char * name, int len); |
dir | 57 | include/linux/minix_fs.h | extern int minix_mknod(struct inode * dir, const char * name, int len, int mode, int rdev); |
dir | 112 | include/linux/msdos_fs.h | extern int msdos_get_entry(struct inode *dir,int *pos,struct buffer_head **bh, |
dir | 114 | include/linux/msdos_fs.h | extern int msdos_scan(struct inode *dir,char *name,struct buffer_head **res_bh, |
dir | 116 | include/linux/msdos_fs.h | extern int msdos_parent_ino(struct inode *dir,int locked); |
dir | 117 | include/linux/msdos_fs.h | extern int msdos_subdirs(struct inode *dir); |
dir | 133 | include/linux/msdos_fs.h | extern int msdos_lookup(struct inode *dir,const char *name,int len, |
dir | 135 | include/linux/msdos_fs.h | extern int msdos_create(struct inode *dir,const char *name,int len,int mode, |
dir | 137 | include/linux/msdos_fs.h | extern int msdos_mkdir(struct inode *dir,const char *name,int len,int mode); |
dir | 138 | include/linux/msdos_fs.h | extern int msdos_rmdir(struct inode *dir,const char *name,int len); |
dir | 139 | include/linux/msdos_fs.h | extern int msdos_unlink(struct inode *dir,const char *name,int len); |
dir | 231 | mm/memory.c | unsigned long *page_table, *dir; |
dir | 239 | mm/memory.c | dir = (unsigned long *) (current->tss.cr3 + ((from >> 20) & 0xffc)); |
dir | 244 | mm/memory.c | for ( ; size > 0; ++dir, size -= pcnt, |
dir | 246 | mm/memory.c | if (!(page_dir = *dir)) { |
dir | 271 | mm/memory.c | *dir = 0; |
dir | 295 | mm/memory.c | unsigned long *page_table, *dir; |
dir | 301 | mm/memory.c | dir = (unsigned long *) (current->tss.cr3 + ((from >> 20) & 0xffc)); |
dir | 308 | mm/memory.c | if (!(1 & *dir)) { |
dir | 313 | mm/memory.c | *dir++ = ((unsigned long) page_table) | PAGE_ACCESSED | 7; |
dir | 316 | mm/memory.c | page_table = (unsigned long *)(0xfffff000 & *dir++); |