BOOK.PS
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:2328k
源码类别:

操作系统开发

开发平台:

C/C++

  1. (search_dir)420 2874 A
  2. 3336(to)S
  3. (bypass)252 3462 A
  4. (the)126 3756 A
  5. (access)252 3924 A
  6. 4218(*/)S
  7. 5400 V
  8. (24720)210 648 A
  9. (PUBLIC)252 1026 A
  10. (char)168 1320 A
  11. (dot2[3])294 1530 A
  12. 1866(=)S
  13. ("..";)210 1950 A
  14. 2370(/*)S
  15. (permissions)462 2496 A
  16. (for)126 3000 A
  17. 3168(.)S
  18. (and)126 3252 A
  19. 3420(..)S
  20. 4218(*/)S
  21. 5490 V
  22. (24721)210 648 A
  23. 5580 V
  24. (24722)210 648 A
  25. (FORWARD)294 1026 A
  26. (_PROTOTYPE()462 1362 A
  27. (char)168 1866 A
  28. (*get_name,)420 2076 A
  29. ((char)210 2538 A
  30. (*old_name,)420 2790 A
  31. (char)168 3252 A
  32. (string)252 3462 A
  33. ([NAME_MAX]))462 3756 A
  34. 4260();)S
  35. 5670 V
  36. (24723)210 648 A
  37. 5760 V
  38. (24724)210 648 A
  39. (/*===========================================================================*)3276 1026 A
  40. 5850 V
  41. (24725)210 648 A
  42. 1068(*)S
  43. (eat_path)336 2370 A
  44. 4260(*)S
  45. 5940 V
  46. (24726)210 648 A
  47. (*===========================================================================*/)3276 1068 A
  48. 6030 V
  49. (24727)210 648 A
  50. (PUBLIC)252 1026 A
  51. (struct)252 1320 A
  52. (inode)210 1614 A
  53. (*eat_path(path))630 1866 A
  54. 6120 V
  55. (24728)210 648 A
  56. (char)168 1026 A
  57. (*path;)252 1236 A
  58. 2370(/*)S
  59. (the)126 2496 A
  60. (path)168 2664 A
  61. (name)168 2874 A
  62. 3084(to)S
  63. 3210(be)S
  64. (parsed)252 3336 A
  65. 3630(*/)S
  66. 6210 V
  67. (24729)210 648 A
  68. 1026({)S
  69. 8418 V
  70. EP
  71. %%Page: 340 340
  72. BP
  73. /slant 0 def
  74. /height 0 def
  75. 630 V
  76. 12 B
  77. (340)180 648 A
  78. 11 R
  79. 2151(File:)S
  80. 2384(src/fs/path.c)S
  81. 10 R
  82. 3402(MINIX)S
  83. 3730(SOURCE)S
  84. 4153(CODE)S
  85. 900 V
  86. 7 LST
  87. (24730)210 648 A
  88. 1026(/*)S
  89. (Parse)210 1152 A
  90. (the)126 1404 A
  91. (path)168 1572 A
  92. ('path')252 1782 A
  93. (and)126 2076 A
  94. (put)126 2244 A
  95. (its)126 2412 A
  96. (inode)210 2580 A
  97. 2832(in)S
  98. (the)126 2958 A
  99. (inode)210 3126 A
  100. (table.)252 3378 A
  101. 3672(If)S
  102. (not)126 3798 A
  103. (possible,)378 3966 A
  104. 990 V
  105. (24731)210 648 A
  106. 1068(*)S
  107. (return)252 1152 A
  108. (NIL_INODE)378 1446 A
  109. 1866(as)S
  110. (function)336 1992 A
  111. (value)210 2370 A
  112. (and)126 2622 A
  113. 2790(an)S
  114. (error)210 2916 A
  115. (code)168 3168 A
  116. 3378(in)S
  117. ('err_code'.)462 3504 A
  118. 1080 V
  119. (24732)210 648 A
  120. 1068(*/)S
  121. 1170 V
  122. (24733)210 648 A
  123. 1260 V
  124. (24734)210 648 A
  125. (register)336 1110 A
  126. (struct)252 1488 A
  127. (inode)210 1782 A
  128. (*ldip,)252 2034 A
  129. (*rip;)210 2328 A
  130. 1350 V
  131. (24735)210 648 A
  132. (char)168 1110 A
  133. (string[NAME_MAX];)714 1320 A
  134. 2370(/*)S
  135. (hold)168 2496 A
  136. 2706(1)S
  137. (path)168 2790 A
  138. (component)378 3000 A
  139. (name)168 3420 A
  140. (here)168 3630 A
  141. 3840(*/)S
  142. 1440 V
  143. (24736)210 648 A
  144. 1530 V
  145. (24737)210 648 A
  146. 1110(/*)S
  147. (First)210 1236 A
  148. (open)168 1488 A
  149. (the)126 1698 A
  150. (path)168 1866 A
  151. (down)168 2076 A
  152. 2286(to)S
  153. (the)126 2412 A
  154. (final)210 2580 A
  155. (directory.)420 2832 A
  156. 3294(*/)S
  157. 1620 V
  158. (24738)210 648 A
  159. 1110(if)S
  160. 1236(()S
  161. ((ldip)210 1320 A
  162. 1572(=)S
  163. (last_dir(path,)588 1656 A
  164. (string)))336 2286 A
  165. 2664(==)S
  166. (NIL_INODE))420 2790 A
  167. 1710 V
  168. (24739)210 648 A
  169. (return(NIL_INODE);)756 1362 A
  170. 2370(/*)S
  171. 2496(we)S
  172. (couldn't)336 2622 A
  173. (open)168 3000 A
  174. (final)210 3210 A
  175. (directory)378 3462 A
  176. 3882(*/)S
  177. 1800 V
  178. (24740)210 648 A
  179. 1890 V
  180. (24741)210 648 A
  181. 1110(/*)S
  182. (The)126 1236 A
  183. (path)168 1404 A
  184. (consisting)420 1614 A
  185. (only)168 2076 A
  186. 2286(of)S
  187. ("/")126 2412 A
  188. 2580(is)S
  189. 2706(a)S
  190. (special)294 2790 A
  191. (case,)210 3126 A
  192. (check)210 3378 A
  193. (for)126 3630 A
  194. (it.)126 3798 A
  195. 3966(*/)S
  196. 1980 V
  197. (24742)210 648 A
  198. 1110(if)S
  199. ((string[0])420 1236 A
  200. 1698(==)S
  201. ('\0'))210 1824 A
  202. (return(ldip);)546 2076 A
  203. 2070 V
  204. (24743)210 648 A
  205. 2160 V
  206. (24744)210 648 A
  207. 1110(/*)S
  208. (Get)126 1236 A
  209. (final)210 1404 A
  210. (component)378 1656 A
  211. 2076(of)S
  212. (the)126 2202 A
  213. (path.)210 2370 A
  214. 2622(*/)S
  215. 2250 V
  216. (24745)210 648 A
  217. (rip)126 1110 A
  218. 1278(=)S
  219. (advance(ldip,)546 1362 A
  220. (string);)336 1950 A
  221. 2340 V
  222. (24746)210 648 A
  223. (put_inode(ldip);)672 1110 A
  224. 2430 V
  225. (24747)210 648 A
  226. (return(rip);)504 1110 A
  227. 2520 V
  228. (24748)210 648 A
  229. 1026(})S
  230. 2790 V
  231. (24751)210 648 A
  232. (/*===========================================================================*)3276 1026 A
  233. 2880 V
  234. (24752)210 648 A
  235. 1068(*)S
  236. (last_dir)336 2370 A
  237. 4260(*)S
  238. 2970 V
  239. (24753)210 648 A
  240. (*===========================================================================*/)3276 1068 A
  241. 3060 V
  242. (24754)210 648 A
  243. (PUBLIC)252 1026 A
  244. (struct)252 1320 A
  245. (inode)210 1614 A
  246. (*last_dir(path,)630 1866 A
  247. (string))294 2538 A
  248. 3150 V
  249. (24755)210 648 A
  250. (char)168 1026 A
  251. (*path;)252 1236 A
  252. 2370(/*)S
  253. (the)126 2496 A
  254. (path)168 2664 A
  255. (name)168 2874 A
  256. 3084(to)S
  257. 3210(be)S
  258. (parsed)252 3336 A
  259. 3630(*/)S
  260. 3240 V
  261. (24756)210 648 A
  262. (char)168 1026 A
  263. (string[NAME_MAX];)714 1236 A
  264. 2370(/*)S
  265. (the)126 2496 A
  266. (final)210 2664 A
  267. (component)378 2916 A
  268. 3336(is)S
  269. (returned)336 3462 A
  270. (here)168 3840 A
  271. 4050(*/)S
  272. 3330 V
  273. (24757)210 648 A
  274. 1026({)S
  275. 3420 V
  276. (24758)210 648 A
  277. 1026(/*)S
  278. (Given)210 1152 A
  279. 1404(a)S
  280. (path,)210 1488 A
  281. ('path',)294 1740 A
  282. (located)294 2076 A
  283. 2412(in)S
  284. (the)126 2538 A
  285. 2706(fs)S
  286. (address)294 2832 A
  287. (space,)252 3168 A
  288. (parse)210 3462 A
  289. 3714(it)S
  290. 3840(as)S
  291. 3510 V
  292. (24759)210 648 A
  293. 1068(*)S
  294. (far)126 1152 A
  295. 1320(as)S
  296. (the)126 1446 A
  297. (last)168 1614 A
  298. (directory,)420 1824 A
  299. (fetch)210 2286 A
  300. (the)126 2538 A
  301. (inode)210 2706 A
  302. (for)126 2958 A
  303. (the)126 3126 A
  304. (last)168 3294 A
  305. (directory)378 3504 A
  306. (into)168 3924 A
  307. 3600 V
  308. (24760)210 648 A
  309. 1068(*)S
  310. (the)126 1152 A
  311. (inode)210 1320 A
  312. (table,)252 1572 A
  313. (and)126 1866 A
  314. (return)252 2034 A
  315. 2328(a)S
  316. (pointer)294 2412 A
  317. 2748(to)S
  318. (the)126 2874 A
  319. (inode.)252 3042 A
  320. 3378(In)S
  321. 3690 V
  322. (24761)210 648 A
  323. 1068(*)S
  324. (addition,)378 1152 A
  325. (return)252 1572 A
  326. (the)126 1866 A
  327. (final)210 2034 A
  328. (component)378 2286 A
  329. 2706(of)S
  330. (the)126 2832 A
  331. (path)168 3000 A
  332. 3210(in)S
  333. ('string'.)378 3336 A
  334. 3780 V
  335. (24762)210 648 A
  336. 1068(*)S
  337. 1152(If)S
  338. (the)126 1278 A
  339. (last)168 1446 A
  340. (directory)378 1656 A
  341. (can't)210 2076 A
  342. 2328(be)S
  343. (opened,)294 2454 A
  344. (return)252 2790 A
  345. (NIL_INODE)378 3084 A
  346. (and)126 3504 A
  347. 3870 V
  348. (24763)210 648 A
  349. 1068(*)S
  350. (the)126 1152 A
  351. (reason)252 1320 A
  352. (for)126 1614 A
  353. (failure)294 1782 A
  354. 2118(in)S
  355. ('err_code'.)462 2244 A
  356. 3960 V
  357. (24764)210 648 A
  358. 1068(*/)S
  359. 4050 V
  360. (24765)210 648 A
  361. 4140 V
  362. (24766)210 648 A
  363. (register)336 1110 A
  364. (struct)252 1488 A
  365. (inode)210 1782 A
  366. (*rip;)210 2034 A
  367. 4230 V
  368. (24767)210 648 A
  369. (register)336 1110 A
  370. (char)168 1488 A
  371. (*new_name;)420 1698 A
  372. 4320 V
  373. (24768)210 648 A
  374. (register)336 1110 A
  375. (struct)252 1488 A
  376. (inode)210 1782 A
  377. (*new_ip;)336 2034 A
  378. 4410 V
  379. (24769)210 648 A
  380. 4500 V
  381. (24770)210 648 A
  382. 1110(/*)S
  383. 1236(Is)S
  384. (the)126 1362 A
  385. (path)168 1530 A
  386. (absolute)336 1740 A
  387. 2118(or)S
  388. (relative?)378 2244 A
  389. (Initialize)420 2706 A
  390. ('rip')210 3168 A
  391. (accordingly.)504 3420 A
  392. 3966(*/)S
  393. 4590 V
  394. (24771)210 648 A
  395. (rip)126 1110 A
  396. 1278(=)S
  397. ((*path)252 1362 A
  398. 1656(==)S
  399. ('/')126 1782 A
  400. 1950(?)S
  401. (fp->fp_rootdir)588 2034 A
  402. 2664(:)S
  403. (fp->fp_workdir);)672 2748 A
  404. 4680 V
  405. (24772)210 648 A
  406. 4770 V
  407. (24773)210 648 A
  408. 1110(/*)S
  409. 1236(If)S
  410. (dir)126 1362 A
  411. (has)126 1530 A
  412. (been)168 1698 A
  413. (removed)294 1908 A
  414. 2244(or)S
  415. (path)168 2370 A
  416. 2580(is)S
  417. (empty,)252 2706 A
  418. (return)252 3000 A
  419. (ENOENT.)294 3294 A
  420. 3630(*/)S
  421. 4860 V
  422. (24774)210 648 A
  423. 1110(if)S
  424. ((rip->i_nlinks)588 1236 A
  425. 1866(==)S
  426. 1992(0)S
  427. 2076(||)S
  428. (*path)210 2202 A
  429. 2454(==)S
  430. ('\0'))210 2580 A
  431. 2832({)S
  432. 4950 V
  433. (24775)210 648 A
  434. (err_code)336 1362 A
  435. 1740(=)S
  436. (ENOENT;)294 1824 A
  437. 5040 V
  438. (24776)210 648 A
  439. (return(NIL_INODE);)756 1362 A
  440. 5130 V
  441. (24777)210 648 A
  442. 1110(})S
  443. 5220 V
  444. (24778)210 648 A
  445. 5310 V
  446. (24779)210 648 A
  447. (dup_inode(rip);)630 1110 A
  448. 2370(/*)S
  449. (inode)210 2496 A
  450. (will)168 2748 A
  451. 2958(be)S
  452. (returned)336 3084 A
  453. (with)168 3462 A
  454. (put_inode)378 3672 A
  455. 4092(*/)S
  456. 5400 V
  457. (24780)210 648 A
  458. 5490 V
  459. (24781)210 648 A
  460. 1110(/*)S
  461. (Scan)168 1236 A
  462. (the)126 1446 A
  463. (path)168 1614 A
  464. (component)378 1824 A
  465. 2244(by)S
  466. (component.)420 2370 A
  467. 2832(*/)S
  468. 5580 V
  469. (24782)210 648 A
  470. (while)210 1110 A
  471. ((TRUE))252 1362 A
  472. 1656({)S
  473. 5670 V
  474. (24783)210 648 A
  475. 1362(/*)S
  476. (Extract)294 1488 A
  477. (one)126 1824 A
  478. (component.)420 1992 A
  479. 2454(*/)S
  480. 5760 V
  481. (24784)210 648 A
  482. 1362(if)S
  483. 1488(()S
  484. ((new_name)378 1572 A
  485. 1992(=)S
  486. (get_name(path,)588 2076 A
  487. (string)))336 2706 A
  488. 3084(==)S
  489. ((char*))294 3210 A
  490. 3546(0))S
  491. 3672({)S
  492. 5850 V
  493. (24785)210 648 A
  494. (put_inode(rip);)630 1698 A
  495. 2370(/*)S
  496. (bad)126 2496 A
  497. (path)168 2664 A
  498. 2874(in)S
  499. (user)168 3000 A
  500. (space)210 3210 A
  501. 3462(*/)S
  502. 5940 V
  503. (24786)210 648 A
  504. (return(NIL_INODE);)756 1698 A
  505. 6030 V
  506. (24787)210 648 A
  507. 1362(})S
  508. 6120 V
  509. (24788)210 648 A
  510. 1362(if)S
  511. ((*new_name)420 1488 A
  512. 1950(==)S
  513. ('\0'))210 2076 A
  514. 6210 V
  515. (24789)210 648 A
  516. 1698(if)S
  517. 1824(()S
  518. ((rip->i_mode)504 1908 A
  519. 2454(&)S
  520. (I_TYPE))294 2538 A
  521. 2874(==)S
  522. (I_DIRECTORY))504 3000 A
  523. 8418 V
  524. EP
  525. %%Page: 341 341
  526. BP
  527. /slant 0 def
  528. /height 0 def
  529. 630 V
  530. 10 R
  531. 648(MINIX)S
  532. 976(SOURCE)S
  533. 1399(CODE)S
  534. 11 R
  535. 2151(File:)S
  536. 2384(src/fs/path.c)S
  537. 12 B
  538. (341)180 4248 A
  539. 900 V
  540. 7 LST
  541. (24790)210 648 A
  542. (return(rip);)504 2034 A
  543. 2706(/*)S
  544. (normal)252 2832 A
  545. (exit)168 3126 A
  546. 3336(*/)S
  547. 990 V
  548. (24791)210 648 A
  549. (else)168 1698 A
  550. 1908({)S
  551. 1080 V
  552. (24792)210 648 A
  553. 2034(/*)S
  554. (last)168 2160 A
  555. (file)168 2370 A
  556. 2580(of)S
  557. (path)168 2706 A
  558. (prefix)252 2916 A
  559. 3210(is)S
  560. (not)126 3336 A
  561. 3504(a)S
  562. (directory)378 3588 A
  563. 4008(*/)S
  564. 1170 V
  565. (24793)210 648 A
  566. (put_inode(rip);)630 2034 A
  567. 1260 V
  568. (24794)210 648 A
  569. (err_code)336 2034 A
  570. 2412(=)S
  571. (ENOTDIR;)336 2496 A
  572. 1350 V
  573. (24795)210 648 A
  574. (return(NIL_INODE);)756 2034 A
  575. 1440 V
  576. (24796)210 648 A
  577. 1698(})S
  578. 1530 V
  579. (24797)210 648 A
  580. 1620 V
  581. (24798)210 648 A
  582. 1362(/*)S
  583. (There)210 1488 A
  584. 1740(is)S
  585. (more)168 1866 A
  586. (path.)210 2076 A
  587. (Keep)168 2370 A
  588. (parsing.)336 2580 A
  589. 2958(*/)S
  590. 1710 V
  591. (24799)210 648 A
  592. (new_ip)252 1362 A
  593. 1656(=)S
  594. (advance(rip,)504 1740 A
  595. (string);)336 2286 A
  596. 1800 V
  597. (24800)210 648 A
  598. (put_inode(rip);)630 1362 A
  599. 2370(/*)S
  600. (rip)126 2496 A
  601. (either)252 2664 A
  602. (obsolete)336 2958 A
  603. 3336(or)S
  604. (irrelevant)420 3462 A
  605. 3924(*/)S
  606. 1890 V
  607. (24801)210 648 A
  608. 1362(if)S
  609. ((new_ip)294 1488 A
  610. 1824(==)S
  611. (NIL_INODE))420 1950 A
  612. (return(NIL_INODE);)756 2412 A
  613. 1980 V
  614. (24802)210 648 A
  615. 2070 V
  616. (24803)210 648 A
  617. 1362(/*)S
  618. (The)126 1488 A
  619. (call)168 1656 A
  620. 1866(to)S
  621. (advance())378 1992 A
  622. (succeeded.)420 2412 A
  623. (Fetch)210 2916 A
  624. (next)168 3168 A
  625. (component.)420 3378 A
  626. 3840(*/)S
  627. 2160 V
  628. (24804)210 648 A
  629. (path)168 1362 A
  630. 1572(=)S
  631. (new_name;)378 1656 A
  632. 2250 V
  633. (24805)210 648 A
  634. (rip)126 1362 A
  635. 1530(=)S
  636. (new_ip;)294 1614 A
  637. 2340 V
  638. (24806)210 648 A
  639. 1110(})S
  640. 2430 V
  641. (24807)210 648 A
  642. 1026(})S
  643. 2700 V
  644. (24810)210 648 A
  645. (/*===========================================================================*)3276 1026 A
  646. 2790 V
  647. (24811)210 648 A
  648. 1068(*)S
  649. (get_name)336 2370 A
  650. 4260(*)S
  651. 2880 V
  652. (24812)210 648 A
  653. (*===========================================================================*/)3276 1068 A
  654. 2970 V
  655. (24813)210 648 A
  656. (PRIVATE)294 1026 A
  657. (char)168 1362 A
  658. (*get_name(old_name,)798 1572 A
  659. (string))294 2412 A
  660. 3060 V
  661. (24814)210 648 A
  662. (char)168 1026 A
  663. (*old_name;)420 1236 A
  664. 2370(/*)S
  665. (path)168 2496 A
  666. (name)168 2706 A
  667. 2916(to)S
  668. (parse)210 3042 A
  669. 3294(*/)S
  670. 3150 V
  671. (24815)210 648 A
  672. (char)168 1026 A
  673. (string[NAME_MAX];)714 1236 A
  674. 2370(/*)S
  675. (component)378 2496 A
  676. (extracted)378 2916 A
  677. (from)168 3336 A
  678. ('old_name')420 3546 A
  679. 4008(*/)S
  680. 3240 V
  681. (24816)210 648 A
  682. 1026({)S
  683. 3330 V
  684. (24817)210 648 A
  685. 1026(/*)S
  686. (Given)210 1152 A
  687. 1404(a)S
  688. (pointer)294 1488 A
  689. 1824(to)S
  690. 1950(a)S
  691. (path)168 2034 A
  692. (name)168 2244 A
  693. 2454(in)S
  694. 2580(fs)S
  695. (space,)252 2706 A
  696. ('old_name',)462 3000 A
  697. (copy)168 3504 A
  698. (the)126 3714 A
  699. (next)168 3882 A
  700. 3420 V
  701. (24818)210 648 A
  702. 1068(*)S
  703. (component)378 1152 A
  704. 1572(to)S
  705. ('string')336 1698 A
  706. (and)126 2076 A
  707. (pad)126 2244 A
  708. (with)168 2412 A
  709. (zeros.)252 2622 A
  710. 2958(A)S
  711. (pointer)294 3042 A
  712. 3378(to)S
  713. (that)168 3504 A
  714. (part)168 3714 A
  715. 3924(of)S
  716. 3510 V
  717. (24819)210 648 A
  718. 1068(*)S
  719. (the)126 1152 A
  720. (name)168 1320 A
  721. 1530(as)S
  722. (yet)126 1656 A
  723. (unparsed)336 1824 A
  724. 2202(is)S
  725. (returned.)378 2328 A
  726. (Roughly)294 2790 A
  727. (speaking,)378 3126 A
  728. 3600 V
  729. (24820)210 648 A
  730. 1068(*)S
  731. ('get_name')420 1152 A
  732. 1614(=)S
  733. ('old_name')420 1698 A
  734. 2160(-)S
  735. ('string'.)378 2244 A
  736. 3690 V
  737. (24821)210 648 A
  738. 1068(*)S
  739. 3780 V
  740. (24822)210 648 A
  741. 1068(*)S
  742. (This)168 1152 A
  743. (routine)294 1362 A
  744. (follows)294 1698 A
  745. (the)126 2034 A
  746. (standard)336 2202 A
  747. (convention)420 2580 A
  748. (that)168 3042 A
  749. (/usr/ast,)378 3252 A
  750. (/usr//ast,)420 3672 A
  751. 3870 V
  752. (24823)210 648 A
  753. 1068(*)S
  754. (//usr///ast)462 1152 A
  755. (and)126 1656 A
  756. (/usr/ast/)378 1824 A
  757. (are)126 2244 A
  758. (all)126 2412 A
  759. (equivalent.)462 2580 A
  760. 3960 V
  761. (24824)210 648 A
  762. 1068(*/)S
  763. 4050 V
  764. (24825)210 648 A
  765. 4140 V
  766. (24826)210 648 A
  767. (register)336 1110 A
  768. (int)126 1488 A
  769. 1656(c;)S
  770. 4230 V
  771. (24827)210 648 A
  772. (register)336 1110 A
  773. (char)168 1488 A
  774. (*np,)168 1698 A
  775. (*rnp;)210 1908 A
  776. 4320 V
  777. (24828)210 648 A
  778. 4410 V
  779. (24829)210 648 A
  780. 1110(np)S
  781. 1236(=)S
  782. (string;)294 1320 A
  783. 2370(/*)S
  784. ('np')168 2496 A
  785. (points)252 2706 A
  786. 3000(to)S
  787. (current)294 3126 A
  788. (position)336 3462 A
  789. 3840(*/)S
  790. 4500 V
  791. (24830)210 648 A
  792. (rnp)126 1110 A
  793. 1278(=)S
  794. (old_name;)378 1362 A
  795. 2370(/*)S
  796. ('rnp')210 2496 A
  797. (points)252 2748 A
  798. 3042(to)S
  799. (unparsed)336 3168 A
  800. (string)252 3546 A
  801. 3840(*/)S
  802. 4590 V
  803. (24831)210 648 A
  804. (while)210 1110 A
  805. 1362(()S
  806. 1446((c)S
  807. 1572(=)S
  808. (*rnp))210 1656 A
  809. 1908(==)S
  810. ('/'))168 2034 A
  811. (rnp++;)252 2244 A
  812. 2706(/*)S
  813. (skip)168 2832 A
  814. (leading)294 3042 A
  815. (slashes)294 3378 A
  816. 3714(*/)S
  817. 4680 V
  818. (24832)210 648 A
  819. 4770 V
  820. (24833)210 648 A
  821. 1110(/*)S
  822. (Copy)168 1236 A
  823. (the)126 1446 A
  824. (unparsed)336 1614 A
  825. (path,)210 1992 A
  826. ('old_name',)462 2244 A
  827. 2748(to)S
  828. (the)126 2874 A
  829. (array,)252 3042 A
  830. ('string'.)378 3336 A
  831. 3756(*/)S
  832. 4860 V
  833. (24834)210 648 A
  834. (while)210 1110 A
  835. 1362(()S
  836. (rnp)126 1446 A
  837. 1614(<)S
  838. (&old_name[PATH_MAX])798 1698 A
  839. 2580(&&)S
  840. 2748(c)S
  841. 2832(!=)S
  842. ('/')126 2958 A
  843. 3210(&&)S
  844. 3378(c)S
  845. 3462(!=)S
  846. ('\0'))210 3588 A
  847. 3840({)S
  848. 4950 V
  849. (24835)210 648 A
  850. 1362(if)S
  851. ((np)126 1488 A
  852. 1656(<)S
  853. (&string[NAME_MAX]))756 1740 A
  854. (*np++)210 2538 A
  855. 2790(=)S
  856. 2874(c;)S
  857. 5040 V
  858. (24836)210 648 A
  859. 1362(c)S
  860. 1446(=)S
  861. (*++rnp;)294 1530 A
  862. 2370(/*)S
  863. (advance)294 2496 A
  864. 2832(to)S
  865. (next)168 2958 A
  866. (character)378 3168 A
  867. 3588(*/)S
  868. 5130 V
  869. (24837)210 648 A
  870. 1110(})S
  871. 5220 V
  872. (24838)210 648 A
  873. 5310 V
  874. (24839)210 648 A
  875. 1110(/*)S
  876. 1236(To)S
  877. (make)168 1362 A
  878. (/usr/ast/)378 1572 A
  879. (equivalent)420 1992 A
  880. 2454(to)S
  881. (/usr/ast,)378 2580 A
  882. (skip)168 3000 A
  883. (trailing)336 3210 A
  884. (slashes.)336 3588 A
  885. 3966(*/)S
  886. 5400 V
  887. (24840)210 648 A
  888. (while)210 1110 A
  889. 1362((c)S
  890. 1488(==)S
  891. ('/')126 1614 A
  892. 1782(&&)S
  893. (rnp)126 1908 A
  894. 2076(<)S
  895. (&old_name[PATH_MAX]))840 2160 A
  896. 3042(c)S
  897. 3126(=)S
  898. (*++rnp;)294 3210 A
  899. 5490 V
  900. (24841)210 648 A
  901. 5580 V
  902. (24842)210 648 A
  903. 1110(if)S
  904. ((np)126 1236 A
  905. 1404(<)S
  906. (&string[NAME_MAX]))756 1488 A
  907. (*np)126 2286 A
  908. 2454(=)S
  909. ('\0';)210 2538 A
  910. 3042(/*)S
  911. (Terminate)378 3168 A
  912. (string)252 3588 A
  913. 3882(*/)S
  914. 5670 V
  915. (24843)210 648 A
  916. 5760 V
  917. (24844)210 648 A
  918. 1110(if)S
  919. ((rnp)168 1236 A
  920. 1446(>=)S
  921. (&old_name[PATH_MAX]))840 1572 A
  922. 2454({)S
  923. 5850 V
  924. (24845)210 648 A
  925. (err_code)336 1362 A
  926. 1740(=)S
  927. (ENAMETOOLONG;)546 1824 A
  928. 5940 V
  929. (24846)210 648 A
  930. (return((char)504 1362 A
  931. 1908(*))S
  932. (0);)126 2034 A
  933. 6030 V
  934. (24847)210 648 A
  935. 1110(})S
  936. 6120 V
  937. (24848)210 648 A
  938. (return(rnp);)504 1110 A
  939. 6210 V
  940. (24849)210 648 A
  941. 1026(})S
  942. 8418 V
  943. EP
  944. %%Page: 342 342
  945. BP
  946. /slant 0 def
  947. /height 0 def
  948. 630 V
  949. 12 B
  950. (342)180 648 A
  951. 11 R
  952. 2151(File:)S
  953. 2384(src/fs/path.c)S
  954. 10 R
  955. 3402(MINIX)S
  956. 3730(SOURCE)S
  957. 4153(CODE)S
  958. 1080 V
  959. 7 LST
  960. (24852)210 648 A
  961. (/*===========================================================================*)3276 1026 A
  962. 1170 V
  963. (24853)210 648 A
  964. 1068(*)S
  965. (advance)294 2370 A
  966. 4260(*)S
  967. 1260 V
  968. (24854)210 648 A
  969. (*===========================================================================*/)3276 1068 A
  970. 1350 V
  971. (24855)210 648 A
  972. (PUBLIC)252 1026 A
  973. (struct)252 1320 A
  974. (inode)210 1614 A
  975. (*advance(dirp,)588 1866 A
  976. (string))294 2496 A
  977. 1440 V
  978. (24856)210 648 A
  979. (struct)252 1026 A
  980. (inode)210 1320 A
  981. (*dirp;)252 1572 A
  982. 2370(/*)S
  983. (inode)210 2496 A
  984. (for)126 2748 A
  985. (directory)378 2916 A
  986. 3336(to)S
  987. 3462(be)S
  988. (searched)336 3588 A
  989. 3966(*/)S
  990. 1530 V
  991. (24857)210 648 A
  992. (char)168 1026 A
  993. (string[NAME_MAX];)714 1236 A
  994. 2370(/*)S
  995. (component)378 2496 A
  996. (name)168 2916 A
  997. 3126(to)S
  998. (look)168 3252 A
  999. (for)126 3462 A
  1000. 3630(*/)S
  1001. 1620 V
  1002. (24858)210 648 A
  1003. 1026({)S
  1004. 1710 V
  1005. (24859)210 648 A
  1006. 1026(/*)S
  1007. (Given)210 1152 A
  1008. 1404(a)S
  1009. (directory)378 1488 A
  1010. (and)126 1908 A
  1011. 2076(a)S
  1012. (component)378 2160 A
  1013. 2580(of)S
  1014. 2706(a)S
  1015. (path,)210 2790 A
  1016. (look)168 3042 A
  1017. 3252(up)S
  1018. (the)126 3378 A
  1019. (component)378 3546 A
  1020. 3966(in)S
  1021. 1800 V
  1022. (24860)210 648 A
  1023. 1068(*)S
  1024. (the)126 1152 A
  1025. (directory,)420 1320 A
  1026. (find)168 1782 A
  1027. (the)126 1992 A
  1028. (inode,)252 2160 A
  1029. (open)168 2454 A
  1030. (it,)126 2664 A
  1031. (and)126 2832 A
  1032. (return)252 3000 A
  1033. 3294(a)S
  1034. (pointer)294 3378 A
  1035. 3714(to)S
  1036. (its)126 3840 A
  1037. (inode)210 4008 A
  1038. 1890 V
  1039. (24861)210 648 A
  1040. 1068(*)S
  1041. (slot.)210 1152 A
  1042. 1446(If)S
  1043. 1572(it)S
  1044. (can't)210 1698 A
  1045. 1950(be)S
  1046. (done,)210 2076 A
  1047. (return)252 2328 A
  1048. (NIL_INODE.)420 2622 A
  1049. 1980 V
  1050. (24862)210 648 A
  1051. 1068(*/)S
  1052. 2070 V
  1053. (24863)210 648 A
  1054. 2160 V
  1055. (24864)210 648 A
  1056. (register)336 1110 A
  1057. (struct)252 1488 A
  1058. (inode)210 1782 A
  1059. (*rip;)210 2034 A
  1060. 2250 V
  1061. (24865)210 648 A
  1062. (struct)252 1110 A
  1063. (inode)210 1404 A
  1064. (*rip2;)252 1656 A
  1065. 2340 V
  1066. (24866)210 648 A
  1067. (register)336 1110 A
  1068. (struct)252 1488 A
  1069. (super_block)462 1782 A
  1070. (*sp;)168 2286 A
  1071. 2430 V
  1072. (24867)210 648 A
  1073. (int)126 1110 A
  1074. 1278(r,)S
  1075. (inumb;)252 1404 A
  1076. 2520 V
  1077. (24868)210 648 A
  1078. (dev_t)210 1110 A
  1079. (mnt_dev;)336 1362 A
  1080. 2610 V
  1081. (24869)210 648 A
  1082. (ino_t)210 1110 A
  1083. (numb;)210 1362 A
  1084. 2700 V
  1085. (24870)210 648 A
  1086. 2790 V
  1087. (24871)210 648 A
  1088. 1110(/*)S
  1089. 1236(If)S
  1090. ('string')336 1362 A
  1091. 1740(is)S
  1092. (empty,)252 1866 A
  1093. (yield)210 2160 A
  1094. (same)168 2412 A
  1095. (inode)210 2622 A
  1096. (straight)336 2874 A
  1097. (away.)210 3252 A
  1098. 3504(*/)S
  1099. 2880 V
  1100. (24872)210 648 A
  1101. 1110(if)S
  1102. ((string[0])420 1236 A
  1103. 1698(==)S
  1104. ('\0'))210 1824 A
  1105. (return(get_inode(dirp->i_dev,)1218 2076 A
  1106. ((int))210 3336 A
  1107. (dirp->i_num));)588 3588 A
  1108. 2970 V
  1109. (24873)210 648 A
  1110. 3060 V
  1111. (24874)210 648 A
  1112. 1110(/*)S
  1113. (Check)210 1236 A
  1114. (for)126 1488 A
  1115. (NIL_INODE.)420 1656 A
  1116. 2118(*/)S
  1117. 3150 V
  1118. (24875)210 648 A
  1119. 1110(if)S
  1120. ((dirp)210 1236 A
  1121. 1488(==)S
  1122. (NIL_INODE))420 1614 A
  1123. (return(NIL_INODE);)756 2076 A
  1124. 3240 V
  1125. (24876)210 648 A
  1126. 3330 V
  1127. (24877)210 648 A
  1128. 1110(/*)S
  1129. 1236(If)S
  1130. ('string')336 1362 A
  1131. 1740(is)S
  1132. (not)126 1866 A
  1133. (present)294 2034 A
  1134. 2370(in)S
  1135. (the)126 2496 A
  1136. (directory,)420 2664 A
  1137. (signal)252 3126 A
  1138. (error.)252 3420 A
  1139. 3714(*/)S
  1140. 3420 V
  1141. (24878)210 648 A
  1142. 1110(if)S
  1143. 1236(()S
  1144. 1320((r)S
  1145. 1446(=)S
  1146. (search_dir(dirp,)672 1530 A
  1147. (string,)294 2244 A
  1148. (&numb,)252 2580 A
  1149. (LOOK_UP)))378 2874 A
  1150. 3294(!=)S
  1151. (OK))126 3420 A
  1152. 3588({)S
  1153. 3510 V
  1154. (24879)210 648 A
  1155. (err_code)336 1362 A
  1156. 1740(=)S
  1157. 1824(r;)S
  1158. 3600 V
  1159. (24880)210 648 A
  1160. (return(NIL_INODE);)756 1362 A
  1161. 3690 V
  1162. (24881)210 648 A
  1163. 1110(})S
  1164. 3780 V
  1165. (24882)210 648 A
  1166. 3870 V
  1167. (24883)210 648 A
  1168. 1110(/*)S
  1169. (Don't)210 1236 A
  1170. 1488(go)S
  1171. (beyond)252 1614 A
  1172. (the)126 1908 A
  1173. (current)294 2076 A
  1174. (root)168 2412 A
  1175. (directory,)420 2622 A
  1176. (unless)252 3084 A
  1177. (the)126 3378 A
  1178. (string)252 3546 A
  1179. 3840(is)S
  1180. (dot2.)210 3966 A
  1181. 4218(*/)S
  1182. 3960 V
  1183. (24884)210 648 A
  1184. 1110(if)S
  1185. ((dirp)210 1236 A
  1186. 1488(==)S
  1187. (fp->fp_rootdir)588 1614 A
  1188. 2244(&&)S
  1189. (strcmp(string,)588 2370 A
  1190. (".."))210 3000 A
  1191. 3252(==)S
  1192. 3378(0)S
  1193. 3462(&&)S
  1194. (string)252 3588 A
  1195. 3882(!=)S
  1196. (dot2))210 4008 A
  1197. 4050 V
  1198. (24885)210 648 A
  1199. (return(get_inode(dirp->i_dev,)1218 1698 A
  1200. ((int))210 2958 A
  1201. (dirp->i_num));)588 3210 A
  1202. 4140 V
  1203. (24886)210 648 A
  1204. 4230 V
  1205. (24887)210 648 A
  1206. 1110(/*)S
  1207. (The)126 1236 A
  1208. (component)378 1404 A
  1209. (has)126 1824 A
  1210. (been)168 1992 A
  1211. (found)210 2202 A
  1212. 2454(in)S
  1213. (the)126 2580 A
  1214. (directory.)420 2748 A
  1215. (Get)126 3252 A
  1216. (inode.)252 3420 A
  1217. 3714(*/)S
  1218. 4320 V
  1219. (24888)210 648 A
  1220. 1110(if)S
  1221. 1236(()S
  1222. ((rip)168 1320 A
  1223. 1530(=)S
  1224. (get_inode(dirp->i_dev,)924 1614 A
  1225. ((int))210 2580 A
  1226. (numb)))252 2832 A
  1227. 3126(==)S
  1228. (NIL_INODE))420 3252 A
  1229. 4410 V
  1230. (24889)210 648 A
  1231. (return(NIL_INODE);)756 1362 A
  1232. 4500 V
  1233. (24890)210 648 A
  1234. 4590 V
  1235. (24891)210 648 A
  1236. 1110(if)S
  1237. ((rip->i_num)462 1236 A
  1238. 1740(==)S
  1239. (ROOT_INODE))462 1866 A
  1240. 4680 V
  1241. (24892)210 648 A
  1242. 1362(if)S
  1243. ((dirp->i_num)504 1488 A
  1244. 2034(==)S
  1245. (ROOT_INODE))462 2160 A
  1246. 2664({)S
  1247. 4770 V
  1248. (24893)210 648 A
  1249. 1530(if)S
  1250. ((string[1])420 1656 A
  1251. 2118(==)S
  1252. ('.'))168 2244 A
  1253. 2454({)S
  1254. 4860 V
  1255. (24894)210 648 A
  1256. (for)126 1698 A
  1257. ((sp)126 1866 A
  1258. 2034(=)S
  1259. (&super_block[1];)672 2118 A
  1260. 2832(sp)S
  1261. 2958(<)S
  1262. (&super_block[NR_SUPERS];)1008 3042 A
  1263. (sp++){)252 4092 A
  1264. 4950 V
  1265. (24895)210 648 A
  1266. 2034(if)S
  1267. ((sp->s_dev)420 2160 A
  1268. 2622(==)S
  1269. (rip->i_dev))462 2748 A
  1270. 3252({)S
  1271. 5040 V
  1272. (24896)210 648 A
  1273. 2370(/*)S
  1274. (Release)294 2496 A
  1275. (the)126 2832 A
  1276. (root)168 3000 A
  1277. (inode.)252 3210 A
  1278. (Replace)294 3546 A
  1279. 3882(by)S
  1280. (the)126 4008 A
  1281. 5130 V
  1282. (24897)210 648 A
  1283. 2412(*)S
  1284. (inode)210 2496 A
  1285. (mounted)294 2748 A
  1286. (on.)126 3084 A
  1287. 5220 V
  1288. (24898)210 648 A
  1289. 2412(*/)S
  1290. 5310 V
  1291. (24899)210 648 A
  1292. (put_inode(rip);)630 2370 A
  1293. 5400 V
  1294. (24900)210 648 A
  1295. (mnt_dev)294 2370 A
  1296. 2706(=)S
  1297. (sp->s_imount->i_dev;)840 2790 A
  1298. 5490 V
  1299. (24901)210 648 A
  1300. (inumb)210 2370 A
  1301. 2622(=)S
  1302. ((int))210 2706 A
  1303. (sp->s_imount->i_num;)840 2958 A
  1304. 5580 V
  1305. (24902)210 648 A
  1306. (rip2)168 2370 A
  1307. 2580(=)S
  1308. (get_inode(mnt_dev,)756 2664 A
  1309. (inumb);)294 3462 A
  1310. 5670 V
  1311. (24903)210 648 A
  1312. (rip)126 2370 A
  1313. 2538(=)S
  1314. (advance(rip2,)546 2622 A
  1315. (string);)336 3210 A
  1316. 5760 V
  1317. (24904)210 648 A
  1318. (put_inode(rip2);)672 2370 A
  1319. 5850 V
  1320. (24905)210 648 A
  1321. (break;)252 2370 A
  1322. 5940 V
  1323. (24906)210 648 A
  1324. 2034(})S
  1325. 6030 V
  1326. (24907)210 648 A
  1327. 1698(})S
  1328. 6120 V
  1329. (24908)210 648 A
  1330. 1530(})S
  1331. 6210 V
  1332. (24909)210 648 A
  1333. 1362(})S
  1334. 8418 V
  1335. EP
  1336. %%Page: 343 343
  1337. BP
  1338. /slant 0 def
  1339. /height 0 def
  1340. 630 V
  1341. 10 R
  1342. 648(MINIX)S
  1343. 976(SOURCE)S
  1344. 1399(CODE)S
  1345. 11 R
  1346. 2151(File:)S
  1347. 2384(src/fs/path.c)S
  1348. 12 B
  1349. (343)180 4248 A
  1350. 900 V
  1351. 7 LST
  1352. (24910)210 648 A
  1353. 1110(if)S
  1354. ((rip)168 1236 A
  1355. 1446(==)S
  1356. (NIL_INODE))420 1572 A
  1357. (return(NIL_INODE);)756 2034 A
  1358. 990 V
  1359. (24911)210 648 A
  1360. 1080 V
  1361. (24912)210 648 A
  1362. 1110(/*)S
  1363. (See)126 1236 A
  1364. 1404(if)S
  1365. (the)126 1530 A
  1366. (inode)210 1698 A
  1367. 1950(is)S
  1368. (mounted)294 2076 A
  1369. (on.)126 2412 A
  1370. 2622(If)S
  1371. (so,)126 2748 A
  1372. (switch)252 2916 A
  1373. 3210(to)S
  1374. (root)168 3336 A
  1375. (directory)378 3546 A
  1376. 3966(of)S
  1377. (the)126 4092 A
  1378. 1170 V
  1379. (24913)210 648 A
  1380. 1152(*)S
  1381. (mounted)294 1236 A
  1382. (file)168 1572 A
  1383. (system.)294 1782 A
  1384. (The)126 2160 A
  1385. (super_block)462 2328 A
  1386. (provides)336 2832 A
  1387. (the)126 3210 A
  1388. (linkage)294 3378 A
  1389. (between)294 3714 A
  1390. (the)126 4050 A
  1391. 1260 V
  1392. (24914)210 648 A
  1393. 1152(*)S
  1394. (inode)210 1236 A
  1395. (mounted)294 1488 A
  1396. 1824(on)S
  1397. (and)126 1950 A
  1398. (the)126 2118 A
  1399. (root)168 2286 A
  1400. (directory)378 2496 A
  1401. 2916(of)S
  1402. (the)126 3042 A
  1403. (mounted)294 3210 A
  1404. (file)168 3546 A
  1405. (system.)294 3756 A
  1406. 1350 V
  1407. (24915)210 648 A
  1408. 1152(*/)S
  1409. 1440 V
  1410. (24916)210 648 A
  1411. (while)210 1110 A
  1412. ((rip)168 1362 A
  1413. 1572(!=)S
  1414. (NIL_INODE)378 1698 A
  1415. 2118(&&)S
  1416. (rip->i_mount)504 2244 A
  1417. 2790(==)S
  1418. (I_MOUNT))336 2916 A
  1419. 3294({)S
  1420. 1530 V
  1421. (24917)210 648 A
  1422. 1362(/*)S
  1423. (The)126 1488 A
  1424. (inode)210 1656 A
  1425. 1908(is)S
  1426. (indeed)252 2034 A
  1427. (mounted)294 2328 A
  1428. (on.)126 2664 A
  1429. 2832(*/)S
  1430. 1620 V
  1431. (24918)210 648 A
  1432. (for)126 1362 A
  1433. ((sp)126 1530 A
  1434. 1698(=)S
  1435. (&super_block[0];)672 1782 A
  1436. 2496(sp)S
  1437. 2622(<)S
  1438. (&super_block[NR_SUPERS];)1008 2706 A
  1439. (sp++))210 3756 A
  1440. 4008({)S
  1441. 1710 V
  1442. (24919)210 648 A
  1443. 1698(if)S
  1444. ((sp->s_imount)546 1824 A
  1445. 2412(==)S
  1446. (rip))168 2538 A
  1447. 2748({)S
  1448. 1800 V
  1449. (24920)210 648 A
  1450. 2034(/*)S
  1451. (Release)294 2160 A
  1452. (the)126 2496 A
  1453. (inode)210 2664 A
  1454. (mounted)294 2916 A
  1455. (on.)126 3252 A
  1456. (Replace)294 3462 A
  1457. 3798(by)S
  1458. (the)126 3924 A
  1459. 1890 V
  1460. (24921)210 648 A
  1461. 2076(*)S
  1462. (inode)210 2160 A
  1463. 2412(of)S
  1464. (the)126 2538 A
  1465. (root)168 2706 A
  1466. (inode)210 2916 A
  1467. 3168(of)S
  1468. (the)126 3294 A
  1469. (mounted)294 3462 A
  1470. (device.)294 3798 A
  1471. 1980 V
  1472. (24922)210 648 A
  1473. 2076(*/)S
  1474. 2070 V
  1475. (24923)210 648 A
  1476. (put_inode(rip);)630 2034 A
  1477. 2160 V
  1478. (24924)210 648 A
  1479. (rip)126 2034 A
  1480. 2202(=)S
  1481. (get_inode(sp->s_dev,)840 2286 A
  1482. (ROOT_INODE);)504 3168 A
  1483. 2250 V
  1484. (24925)210 648 A
  1485. (break;)252 2034 A
  1486. 2340 V
  1487. (24926)210 648 A
  1488. 1698(})S
  1489. 2430 V
  1490. (24927)210 648 A
  1491. 1362(})S
  1492. 2520 V
  1493. (24928)210 648 A
  1494. 1110(})S
  1495. 2610 V
  1496. (24929)210 648 A
  1497. (return(rip);)504 1110 A
  1498. 2034(/*)S
  1499. (return)252 2160 A
  1500. (pointer)294 2454 A
  1501. 2790(to)S
  1502. (inode's)294 2916 A
  1503. (component)378 3252 A
  1504. 3672(*/)S
  1505. 2700 V
  1506. (24930)210 648 A
  1507. 1026(})S
  1508. 2970 V
  1509. (24933)210 648 A
  1510. (/*===========================================================================*)3276 1026 A
  1511. 3060 V
  1512. (24934)210 648 A
  1513. 1068(*)S
  1514. (search_dir)420 2370 A
  1515. 4260(*)S
  1516. 3150 V
  1517. (24935)210 648 A
  1518. (*===========================================================================*/)3276 1068 A
  1519. 3240 V
  1520. (24936)210 648 A
  1521. (PUBLIC)252 1026 A
  1522. (int)126 1320 A
  1523. (search_dir(ldir_ptr,)840 1488 A
  1524. (string,)294 2370 A
  1525. (numb,)210 2706 A
  1526. (flag))210 2958 A
  1527. 3330 V
  1528. (24937)210 648 A
  1529. (register)336 1026 A
  1530. (struct)252 1404 A
  1531. (inode)210 1698 A
  1532. (*ldir_ptr;)420 1950 A
  1533. 2706(/*)S
  1534. (ptr)126 2832 A
  1535. 3000(to)S
  1536. (inode)210 3126 A
  1537. (for)126 3378 A
  1538. (dir)126 3546 A
  1539. 3714(to)S
  1540. (search)252 3840 A
  1541. 4134(*/)S
  1542. 3420 V
  1543. (24938)210 648 A
  1544. (char)168 1026 A
  1545. (string[NAME_MAX];)714 1236 A
  1546. 2370(/*)S
  1547. (component)378 2496 A
  1548. 2916(to)S
  1549. (search)252 3042 A
  1550. (for)126 3336 A
  1551. 3504(*/)S
  1552. 3510 V
  1553. (24939)210 648 A
  1554. (ino_t)210 1026 A
  1555. (*numb;)252 1278 A
  1556. 2370(/*)S
  1557. (pointer)294 2496 A
  1558. 2832(to)S
  1559. (inode)210 2958 A
  1560. (number)252 3210 A
  1561. 3504(*/)S
  1562. 3600 V
  1563. (24940)210 648 A
  1564. (int)126 1026 A
  1565. (flag;)210 1194 A
  1566. 2370(/*)S
  1567. (LOOK_UP,)336 2496 A
  1568. (ENTER,)252 2874 A
  1569. (DELETE)252 3168 A
  1570. 3462(or)S
  1571. (IS_EMPTY)336 3588 A
  1572. 3966(*/)S
  1573. 3690 V
  1574. (24941)210 648 A
  1575. 1026({)S
  1576. 3780 V
  1577. (24942)210 648 A
  1578. 1026(/*)S
  1579. (This)168 1152 A
  1580. (function)336 1362 A
  1581. (searches)336 1740 A
  1582. (the)126 2118 A
  1583. (directory)378 2286 A
  1584. (whose)210 2706 A
  1585. (inode)210 2958 A
  1586. 3210(is)S
  1587. (pointed)294 3336 A
  1588. 3672(to)S
  1589. 3798(by)S
  1590. ('ldip':)294 3924 A
  1591. 3870 V
  1592. (24943)210 648 A
  1593. 1068(*)S
  1594. 1152(if)S
  1595. ((flag)210 1278 A
  1596. 1530(==)S
  1597. (ENTER))252 1656 A
  1598. (enter)210 1992 A
  1599. ('string')336 2244 A
  1600. 2622(in)S
  1601. (the)126 2748 A
  1602. (directory)378 2916 A
  1603. (with)168 3336 A
  1604. (inode)210 3546 A
  1605. 3798(#)S
  1606. ('*numb';)336 3882 A
  1607. 3960 V
  1608. (24944)210 648 A
  1609. 1068(*)S
  1610. 1152(if)S
  1611. ((flag)210 1278 A
  1612. 1530(==)S
  1613. (DELETE))294 1656 A
  1614. (delete)252 1992 A
  1615. ('string')336 2286 A
  1616. (from)168 2664 A
  1617. (the)126 2874 A
  1618. (directory;)420 3042 A
  1619. 4050 V
  1620. (24945)210 648 A
  1621. 1068(*)S
  1622. 1152(if)S
  1623. ((flag)210 1278 A
  1624. 1530(==)S
  1625. (LOOK_UP))336 1656 A
  1626. (search)252 2034 A
  1627. (for)126 2328 A
  1628. ('string')336 2496 A
  1629. (and)126 2874 A
  1630. (return)252 3042 A
  1631. (inode)210 3336 A
  1632. 3588(#)S
  1633. 3672(in)S
  1634. ('numb';)294 3798 A
  1635. 4140 V
  1636. (24946)210 648 A
  1637. 1068(*)S
  1638. 1152(if)S
  1639. ((flag)210 1278 A
  1640. 1530(==)S
  1641. (IS_EMPTY))378 1656 A
  1642. (return)252 2076 A
  1643. 2370(OK)S
  1644. 2496(if)S
  1645. (only)168 2622 A
  1646. 2832(.)S
  1647. (and)126 2916 A
  1648. 3084(..)S
  1649. 3210(in)S
  1650. (dir)126 3336 A
  1651. (else)168 3504 A
  1652. (ENOTEMPTY;)420 3714 A
  1653. 4230 V
  1654. (24947)210 648 A
  1655. 1068(*)S
  1656. 4320 V
  1657. (24948)210 648 A
  1658. 1068(*)S
  1659. 1278(if)S
  1660. ('string')336 1404 A
  1661. 1782(is)S
  1662. (dot1)168 1908 A
  1663. 2118(or)S
  1664. (dot2,)210 2244 A
  1665. 2496(no)S
  1666. (access)252 2622 A
  1667. (permissions)462 2916 A
  1668. (are)126 3420 A
  1669. (checked.)336 3588 A
  1670. 4410 V
  1671. (24949)210 648 A
  1672. 1068(*/)S
  1673. 4500 V
  1674. (24950)210 648 A
  1675. 4590 V
  1676. (24951)210 648 A
  1677. (register)336 1110 A
  1678. (struct)252 1488 A
  1679. (direct)252 1782 A
  1680. (*dp;)168 2076 A
  1681. 4680 V
  1682. (24952)210 648 A
  1683. (register)336 1110 A
  1684. (struct)252 1488 A
  1685. (buf)126 1782 A
  1686. (*bp;)168 1950 A
  1687. 4770 V
  1688. (24953)210 648 A
  1689. (int)126 1110 A
  1690. 1278(i,)S
  1691. 1404(r,)S
  1692. (e_hit,)252 1530 A
  1693. 1824(t,)S
  1694. (match;)252 1950 A
  1695. 4860 V
  1696. (24954)210 648 A
  1697. (mode_t)252 1110 A
  1698. (bits;)210 1404 A
  1699. 4950 V
  1700. (24955)210 648 A
  1701. (off_t)210 1110 A
  1702. (pos;)168 1362 A
  1703. 5040 V
  1704. (24956)210 648 A
  1705. (unsigned)336 1110 A
  1706. (new_slots,)420 1488 A
  1707. (old_slots;)420 1950 A
  1708. 5130 V
  1709. (24957)210 648 A
  1710. (block_t)294 1110 A
  1711. 1446(b;)S
  1712. 5220 V
  1713. (24958)210 648 A
  1714. (struct)252 1110 A
  1715. (super_block)462 1404 A
  1716. (*sp;)168 1908 A
  1717. 5310 V
  1718. (24959)210 648 A
  1719. (int)126 1110 A
  1720. (extended)336 1278 A
  1721. 1656(=)S
  1722. 1740(0;)S
  1723. 5400 V
  1724. (24960)210 648 A
  1725. 5490 V
  1726. (24961)210 648 A
  1727. 1110(/*)S
  1728. 1236(If)S
  1729. ('ldir_ptr')420 1362 A
  1730. 1824(is)S
  1731. (not)126 1950 A
  1732. 2118(a)S
  1733. (pointer)294 2202 A
  1734. 2538(to)S
  1735. 2664(a)S
  1736. (dir)126 2748 A
  1737. (inode,)252 2916 A
  1738. (error.)252 3210 A
  1739. 3504(*/)S
  1740. 5580 V
  1741. (24962)210 648 A
  1742. 1110(if)S
  1743. 1236(()S
  1744. ((ldir_ptr->i_mode)714 1320 A
  1745. 2076(&)S
  1746. (I_TYPE))294 2160 A
  1747. 2496(!=)S
  1748. (I_DIRECTORY))504 2622 A
  1749. (return(ENOTDIR);)672 3168 A
  1750. 5670 V
  1751. (24963)210 648 A
  1752. 5760 V
  1753. (24964)210 648 A
  1754. 1110(r)S
  1755. 1194(=)S
  1756. (OK;)126 1278 A
  1757. 5850 V
  1758. (24965)210 648 A
  1759. 5940 V
  1760. (24966)210 648 A
  1761. 1110(if)S
  1762. ((flag)210 1236 A
  1763. 1488(!=)S
  1764. (IS_EMPTY))378 1614 A
  1765. 2034({)S
  1766. 6030 V
  1767. (24967)210 648 A
  1768. (bits)168 1362 A
  1769. 1572(=)S
  1770. ((flag)210 1656 A
  1771. 1908(==)S
  1772. (LOOK_UP)294 2034 A
  1773. 2370(?)S
  1774. (X_BIT)210 2454 A
  1775. 2706(:)S
  1776. (W_BIT)210 2790 A
  1777. 3042(|)S
  1778. (X_BIT);)294 3126 A
  1779. 6120 V
  1780. (24968)210 648 A
  1781. 6210 V
  1782. (24969)210 648 A
  1783. 1362(if)S
  1784. ((string)294 1488 A
  1785. 1824(==)S
  1786. (dot1)168 1950 A
  1787. 2160(||)S
  1788. (string)252 2286 A
  1789. 2580(==)S
  1790. (dot2))210 2706 A
  1791. 2958({)S
  1792. 8418 V
  1793. EP
  1794. %%Page: 344 344
  1795. BP
  1796. /slant 0 def
  1797. /height 0 def
  1798. 630 V
  1799. 12 B
  1800. (344)180 648 A
  1801. 11 R
  1802. 2151(File:)S
  1803. 2384(src/fs/path.c)S
  1804. 10 R
  1805. 3402(MINIX)S
  1806. 3730(SOURCE)S
  1807. 4153(CODE)S
  1808. 900 V
  1809. 7 LST
  1810. (24970)210 648 A
  1811. 1698(if)S
  1812. ((flag)210 1824 A
  1813. 2076(!=)S
  1814. (LOOK_UP))336 2202 A
  1815. 2580(r)S
  1816. 2664(=)S
  1817. (read_only(ldir_ptr);)840 2748 A
  1818. 990 V
  1819. (24971)210 648 A
  1820. 2580(/*)S
  1821. (only)168 2706 A
  1822. 2916(a)S
  1823. (writable)336 3000 A
  1824. (device)252 3378 A
  1825. 3672(is)S
  1826. (required.)378 3798 A
  1827. 4218(*/)S
  1828. 1080 V
  1829. (24972)210 648 A
  1830. 1362(})S
  1831. 1170 V
  1832. (24973)210 648 A
  1833. (else)168 1362 A
  1834. 1572(r)S
  1835. 1656(=)S
  1836. (forbidden(ldir_ptr,)798 1740 A
  1837. (bits);)252 2580 A
  1838. 2874(/*)S
  1839. (check)210 3000 A
  1840. (access)252 3252 A
  1841. (permissions)462 3546 A
  1842. 4050(*/)S
  1843. 1260 V
  1844. (24974)210 648 A
  1845. 1110(})S
  1846. 1350 V
  1847. (24975)210 648 A
  1848. 1110(if)S
  1849. 1236((r)S
  1850. 1362(!=)S
  1851. (OK))126 1488 A
  1852. (return(r);)420 1656 A
  1853. 1440 V
  1854. (24976)210 648 A
  1855. 1530 V
  1856. (24977)210 648 A
  1857. 1110(/*)S
  1858. (Step)168 1236 A
  1859. (through)294 1446 A
  1860. (the)126 1782 A
  1861. (directory)378 1950 A
  1862. (one)126 2370 A
  1863. (block)210 2538 A
  1864. 2790(at)S
  1865. 2916(a)S
  1866. (time.)210 3000 A
  1867. 3252(*/)S
  1868. 1620 V
  1869. (24978)210 648 A
  1870. (old_slots)378 1110 A
  1871. 1530(=)S
  1872. ((unsigned))420 1614 A
  1873. ((ldir_ptr->i_size/DIR_ENTRY_SIZE);)1428 2076 A
  1874. 1710 V
  1875. (24979)210 648 A
  1876. (new_slots)378 1110 A
  1877. 1530(=)S
  1878. 1614(0;)S
  1879. 1800 V
  1880. (24980)210 648 A
  1881. (e_hit)210 1110 A
  1882. 1362(=)S
  1883. (FALSE;)252 1446 A
  1884. 1890 V
  1885. (24981)210 648 A
  1886. (match)210 1110 A
  1887. 1362(=)S
  1888. 1446(0;)S
  1889. 2370(/*)S
  1890. (set)126 2496 A
  1891. (when)168 2664 A
  1892. 2874(a)S
  1893. (string)252 2958 A
  1894. (match)210 3252 A
  1895. (occurs)252 3504 A
  1896. 3798(*/)S
  1897. 1980 V
  1898. (24982)210 648 A
  1899. 2070 V
  1900. (24983)210 648 A
  1901. (for)126 1110 A
  1902. ((pos)168 1278 A
  1903. 1488(=)S
  1904. 1572(0;)S
  1905. (pos)126 1698 A
  1906. 1866(<)S
  1907. (ldir_ptr->i_size;)714 1950 A
  1908. (pos)126 2706 A
  1909. 2874(+=)S
  1910. (BLOCK_SIZE))462 3000 A
  1911. 3504({)S
  1912. 2160 V
  1913. (24984)210 648 A
  1914. 1362(b)S
  1915. 1446(=)S
  1916. (read_map(ldir_ptr,)756 1530 A
  1917. (pos);)210 2328 A
  1918. 2706(/*)S
  1919. (get)126 2832 A
  1920. (block)210 3000 A
  1921. (number)252 3252 A
  1922. 3546(*/)S
  1923. 2250 V
  1924. (24985)210 648 A
  1925. 2340 V
  1926. (24986)210 648 A
  1927. 1362(/*)S
  1928. (Since)210 1488 A
  1929. (directories)462 1740 A
  1930. (don't)210 2244 A
  1931. (have)168 2496 A
  1932. (holes,)252 2706 A
  1933. ('b')126 3000 A
  1934. (cannot)252 3168 A
  1935. 3462(be)S
  1936. (NO_BLOCK.)378 3588 A
  1937. 4008(*/)S
  1938. 2430 V
  1939. (24987)210 648 A
  1940. 1362(bp)S
  1941. 1488(=)S
  1942. (get_block(ldir_ptr->i_dev,)1092 1572 A
  1943. 2706(b,)S
  1944. (NORMAL);)336 2832 A
  1945. 3378(/*)S
  1946. (get)126 3504 A
  1947. 3672(a)S
  1948. (dir)126 3756 A
  1949. (block)210 3924 A
  1950. 4176(*/)S
  1951. 2520 V
  1952. (24988)210 648 A
  1953. 2610 V
  1954. (24989)210 648 A
  1955. 1362(/*)S
  1956. (Search)252 1488 A
  1957. 1782(a)S
  1958. (directory)378 1866 A
  1959. (block.)252 2286 A
  1960. 2580(*/)S
  1961. 2700 V
  1962. (24990)210 648 A
  1963. (for)126 1362 A
  1964. ((dp)126 1530 A
  1965. 1698(=)S
  1966. (&bp->b_dir[0];)588 1782 A
  1967. 2412(dp)S
  1968. 2538(<)S
  1969. (&bp->b_dir[NR_DIR_ENTRIES];)1134 2622 A
  1970. (dp++))210 3798 A
  1971. 4050({)S
  1972. 2790 V
  1973. (24991)210 648 A
  1974. 1698(if)S
  1975. ((++new_slots)504 1824 A
  1976. 2370(>)S
  1977. (old_slots))420 2454 A
  1978. 2916({)S
  1979. 3000(/*)S
  1980. (not)126 3126 A
  1981. (found,)252 3294 A
  1982. (but)126 3588 A
  1983. (room)168 3756 A
  1984. (left)168 3966 A
  1985. 4176(*/)S
  1986. 2880 V
  1987. (24992)210 648 A
  1988. 2034(if)S
  1989. ((flag)210 2160 A
  1990. 2412(==)S
  1991. (ENTER))252 2538 A
  1992. (e_hit)210 2832 A
  1993. 3084(=)S
  1994. (TRUE;)210 3168 A
  1995. 2970 V
  1996. (24993)210 648 A
  1997. (break;)252 2034 A
  1998. 3060 V
  1999. (24994)210 648 A
  2000. 1698(})S
  2001. 3150 V
  2002. (24995)210 648 A
  2003. 3240 V
  2004. (24996)210 648 A
  2005. 1698(/*)S
  2006. (Match)210 1824 A
  2007. (occurs)252 2076 A
  2008. 2370(if)S
  2009. (string)252 2496 A
  2010. (found.)252 2790 A
  2011. 3084(*/)S
  2012. 3330 V
  2013. (24997)210 648 A
  2014. 1698(if)S
  2015. ((flag)210 1824 A
  2016. 2076(!=)S
  2017. (ENTER)210 2202 A
  2018. 2454(&&)S
  2019. (dp->d_ino)378 2580 A
  2020. 3000(!=)S
  2021. 3126(0))S
  2022. 3252({)S
  2023. 3420 V
  2024. (24998)210 648 A
  2025. 2034(if)S
  2026. ((flag)210 2160 A
  2027. 2412(==)S
  2028. (IS_EMPTY))378 2538 A
  2029. 2958({)S
  2030. 3510 V
  2031. (24999)210 648 A
  2032. 2370(/*)S
  2033. 2496(If)S
  2034. (this)168 2622 A
  2035. (test)168 2832 A
  2036. (succeeds,)378 3042 A
  2037. (dir)126 3462 A
  2038. 3630(is)S
  2039. (not)126 3756 A
  2040. (empty.)252 3924 A
  2041. 4218(*/)S
  2042. 3600 V
  2043. (25000)210 648 A
  2044. 2370(if)S
  2045. ((strcmp(dp->d_name,)798 2496 A
  2046. (".")126 3336 A
  2047. 3504())S
  2048. 3588(!=)S
  2049. 3714(0)S
  2050. 3798(&&)S
  2051. 3690 V
  2052. (25001)210 648 A
  2053. (strcmp(dp->d_name,)756 2538 A
  2054. (".."))210 3336 A
  2055. 3588(!=)S
  2056. 3714(0))S
  2057. (match)210 3840 A
  2058. 4092(=)S
  2059. 4176(1;)S
  2060. 3780 V
  2061. (25002)210 648 A
  2062. 2034(})S
  2063. (else)168 2118 A
  2064. 2328({)S
  2065. 3870 V
  2066. (25003)210 648 A
  2067. 2370(if)S
  2068. ((strncmp(dp->d_name,)840 2496 A
  2069. (string,)294 3378 A
  2070. (NAME_MAX))378 3714 A
  2071. 4134(==)S
  2072. 4260(0))S
  2073. 3960 V
  2074. (25004)210 648 A
  2075. (match)210 2706 A
  2076. 2958(=)S
  2077. 3042(1;)S
  2078. 4050 V
  2079. (25005)210 648 A
  2080. 2034(})S
  2081. 4140 V
  2082. (25006)210 648 A
  2083. 1698(})S
  2084. 4230 V
  2085. (25007)210 648 A
  2086. 4320 V
  2087. (25008)210 648 A
  2088. 1698(if)S
  2089. ((match))294 1824 A
  2090. 2160({)S
  2091. 4410 V
  2092. (25009)210 648 A
  2093. 2034(/*)S
  2094. (LOOK_UP)294 2160 A
  2095. 2496(or)S
  2096. (DELETE)252 2622 A
  2097. (found)210 2916 A
  2098. (what)168 3168 A
  2099. 3378(it)S
  2100. (wanted.)294 3504 A
  2101. 3840(*/)S
  2102. 4500 V
  2103. (25010)210 648 A
  2104. 2034(r)S
  2105. 2118(=)S
  2106. (OK;)126 2202 A
  2107. 4590 V
  2108. (25011)210 648 A
  2109. 2034(if)S
  2110. ((flag)210 2160 A
  2111. 2412(==)S
  2112. (IS_EMPTY))378 2538 A
  2113. 2958(r)S
  2114. 3042(=)S
  2115. (ENOTEMPTY;)420 3126 A
  2116. 4680 V
  2117. (25012)210 648 A
  2118. (else)168 2034 A
  2119. 2244(if)S
  2120. ((flag)210 2370 A
  2121. 2622(==)S
  2122. (DELETE))294 2748 A
  2123. 3084({)S
  2124. 4770 V
  2125. (25013)210 648 A
  2126. 2370(/*)S
  2127. (Save)168 2496 A
  2128. (d_ino)210 2706 A
  2129. (for)126 2958 A
  2130. (recovery.)378 3126 A
  2131. 3546(*/)S
  2132. 4860 V
  2133. (25014)210 648 A
  2134. 2370(t)S
  2135. 2454(=)S
  2136. (NAME_MAX)336 2538 A
  2137. 2916(-)S
  2138. (sizeof(ino_t);)588 3000 A
  2139. 4950 V
  2140. (25015)210 648 A
  2141. (*((ino_t)336 2370 A
  2142. 2748(*))S
  2143. (&dp->d_name[t]))630 2874 A
  2144. 3546(=)S
  2145. (dp->d_ino;)420 3630 A
  2146. 5040 V
  2147. (25016)210 648 A
  2148. (dp->d_ino)378 2370 A
  2149. 2790(=)S
  2150. 2874(0;)S
  2151. 3042(/*)S
  2152. (erase)210 3168 A
  2153. (entry)210 3420 A
  2154. 3672(*/)S
  2155. 5130 V
  2156. (25017)210 648 A
  2157. (bp->b_dirt)420 2370 A
  2158. 2832(=)S
  2159. (DIRTY;)252 2916 A
  2160. 5220 V
  2161. (25018)210 648 A
  2162. (ldir_ptr->i_update)756 2370 A
  2163. 3168(|=)S
  2164. (CTIME)210 3294 A
  2165. 3546(|)S
  2166. (MTIME;)252 3630 A
  2167. 5310 V
  2168. (25019)210 648 A
  2169. (ldir_ptr->i_dirt)672 2370 A
  2170. 3084(=)S
  2171. (DIRTY;)252 3168 A
  2172. 5400 V
  2173. (25020)210 648 A
  2174. 2034(})S
  2175. (else)168 2118 A
  2176. 2328({)S
  2177. 5490 V
  2178. (25021)210 648 A
  2179. 2370(sp)S
  2180. 2496(=)S
  2181. (ldir_ptr->i_sp;)630 2580 A
  2182. 3378(/*)S
  2183. ('flag')252 3504 A
  2184. 3798(is)S
  2185. (LOOK_UP)294 3924 A
  2186. 4260(*/)S
  2187. 5580 V
  2188. (25022)210 648 A
  2189. (*numb)210 2370 A
  2190. 2622(=)S
  2191. (conv2(sp->s_native,)798 2706 A
  2192. ((int))210 3546 A
  2193. (dp->d_ino);)462 3798 A
  2194. 5670 V
  2195. (25023)210 648 A
  2196. 2034(})S
  2197. 5760 V
  2198. (25024)210 648 A
  2199. (put_block(bp,)546 2034 A
  2200. (DIRECTORY_BLOCK);)714 2622 A
  2201. 5850 V
  2202. (25025)210 648 A
  2203. (return(r);)420 2034 A
  2204. 5940 V
  2205. (25026)210 648 A
  2206. 1698(})S
  2207. 6030 V
  2208. (25027)210 648 A
  2209. 6120 V
  2210. (25028)210 648 A
  2211. 6210 V
  2212. (25029)210 648 A
  2213. 1698(/*)S
  2214. (Check)210 1824 A
  2215. (for)126 2076 A
  2216. (free)168 2244 A
  2217. (slot)168 2454 A
  2218. (for)126 2664 A
  2219. (the)126 2832 A
  2220. (benefit)294 3000 A
  2221. 3336(of)S
  2222. (ENTER.)252 3462 A
  2223. 3756(*/)S
  2224. 8418 V
  2225. EP
  2226. %%Page: 345 345
  2227. BP
  2228. /slant 0 def
  2229. /height 0 def
  2230. 630 V
  2231. 10 R
  2232. 648(MINIX)S
  2233. 976(SOURCE)S
  2234. 1399(CODE)S
  2235. 11 R
  2236. 2151(File:)S
  2237. 2384(src/fs/path.c)S
  2238. 12 B
  2239. (345)180 4248 A
  2240. 900 V
  2241. 7 LST
  2242. (25030)210 648 A
  2243. 1698(if)S
  2244. ((flag)210 1824 A
  2245. 2076(==)S
  2246. (ENTER)210 2202 A
  2247. 2454(&&)S
  2248. (dp->d_ino)378 2580 A
  2249. 3000(==)S
  2250. 3126(0))S
  2251. 3252({)S
  2252. 990 V
  2253. (25031)210 648 A
  2254. (e_hit)210 2034 A
  2255. 2286(=)S
  2256. (TRUE;)210 2370 A
  2257. 2706(/*)S
  2258. 2832(we)S
  2259. (found)210 2958 A
  2260. 3210(a)S
  2261. (free)168 3294 A
  2262. (slot)168 3504 A
  2263. 3714(*/)S
  2264. 1080 V
  2265. (25032)210 648 A
  2266. (break;)252 2034 A
  2267. 1170 V
  2268. (25033)210 648 A
  2269. 1698(})S
  2270. 1260 V
  2271. (25034)210 648 A
  2272. 1362(})S
  2273. 1350 V
  2274. (25035)210 648 A
  2275. 1440 V
  2276. (25036)210 648 A
  2277. 1362(/*)S
  2278. (The)126 1488 A
  2279. (whole)210 1656 A
  2280. (block)210 1908 A
  2281. (has)126 2160 A
  2282. (been)168 2328 A
  2283. (searched)336 2538 A
  2284. 2916(or)S
  2285. (ENTER)210 3042 A
  2286. (has)126 3294 A
  2287. 3462(a)S
  2288. (free)168 3546 A
  2289. (slot.)210 3756 A
  2290. 4008(*/)S
  2291. 1530 V
  2292. (25037)210 648 A
  2293. 1362(if)S
  2294. ((e_hit))294 1488 A
  2295. (break;)252 1824 A
  2296. 2370(/*)S
  2297. (e_hit)210 2496 A
  2298. (set)126 2748 A
  2299. 2916(if)S
  2300. (ENTER)210 3042 A
  2301. (can)126 3294 A
  2302. 3462(be)S
  2303. (performed)378 3588 A
  2304. (now)126 4008 A
  2305. 4176(*/)S
  2306. 1620 V
  2307. (25038)210 648 A
  2308. (put_block(bp,)546 1362 A
  2309. (DIRECTORY_BLOCK);)714 1950 A
  2310. 2706(/*)S
  2311. (otherwise,)420 2832 A
  2312. (continue)336 3294 A
  2313. (searching)378 3672 A
  2314. (dir)126 4092 A
  2315. 4260(*/)S
  2316. 1710 V
  2317. (25039)210 648 A
  2318. 1110(})S
  2319. 1800 V
  2320. (25040)210 648 A
  2321. 1890 V
  2322. (25041)210 648 A
  2323. 1110(/*)S
  2324. (The)126 1236 A
  2325. (whole)210 1404 A
  2326. (directory)378 1656 A
  2327. (has)126 2076 A
  2328. (now)126 2244 A
  2329. (been)168 2412 A
  2330. (searched.)378 2622 A
  2331. 3042(*/)S
  2332. 1980 V
  2333. (25042)210 648 A
  2334. 1110(if)S
  2335. ((flag)210 1236 A
  2336. 1488(!=)S
  2337. (ENTER))252 1614 A
  2338. (return(flag)462 1908 A
  2339. 2412(==)S
  2340. (IS_EMPTY)336 2538 A
  2341. 2916(?)S
  2342. 3000(OK)S
  2343. 3126(:)S
  2344. (ENOENT);)336 3210 A
  2345. 2070 V
  2346. (25043)210 648 A
  2347. 2160 V
  2348. (25044)210 648 A
  2349. 1110(/*)S
  2350. (This)168 1236 A
  2351. (call)168 1446 A
  2352. 1656(is)S
  2353. (for)126 1782 A
  2354. (ENTER.)252 1950 A
  2355. 2286(If)S
  2356. 2412(no)S
  2357. (free)168 2538 A
  2358. (slot)168 2748 A
  2359. (has)126 2958 A
  2360. (been)168 3126 A
  2361. (found)210 3336 A
  2362. 3588(so)S
  2363. (far,)168 3714 A
  2364. (try)126 3924 A
  2365. 4092(to)S
  2366. 2250 V
  2367. (25045)210 648 A
  2368. 1152(*)S
  2369. (extend)252 1236 A
  2370. (directory.)420 1530 A
  2371. 2340 V
  2372. (25046)210 648 A
  2373. 1152(*/)S
  2374. 2430 V
  2375. (25047)210 648 A
  2376. 1110(if)S
  2377. ((e_hit)252 1236 A
  2378. 1530(==)S
  2379. (FALSE))252 1656 A
  2380. 1950({)S
  2381. 2034(/*)S
  2382. (directory)378 2160 A
  2383. 2580(is)S
  2384. (full)168 2706 A
  2385. (and)126 2916 A
  2386. 3084(no)S
  2387. (room)168 3210 A
  2388. (left)168 3420 A
  2389. 3630(in)S
  2390. (last)168 3756 A
  2391. (block)210 3966 A
  2392. 4218(*/)S
  2393. 2520 V
  2394. (25048)210 648 A
  2395. (new_slots++;)504 1362 A
  2396. 2370(/*)S
  2397. (increase)336 2496 A
  2398. (directory)378 2874 A
  2399. (size)168 3294 A
  2400. 3504(by)S
  2401. 3630(1)S
  2402. (entry)210 3714 A
  2403. 3966(*/)S
  2404. 2610 V
  2405. (25049)210 648 A
  2406. 1362(if)S
  2407. ((new_slots)420 1488 A
  2408. 1950(==)S
  2409. 2076(0))S
  2410. (return(EFBIG);)588 2202 A
  2411. 2832(/*)S
  2412. (dir)126 2958 A
  2413. (size)168 3126 A
  2414. (limited)294 3336 A
  2415. 3672(by)S
  2416. (slot)168 3798 A
  2417. (count)210 4008 A
  2418. 4260(*/)S
  2419. 2700 V
  2420. (25050)210 648 A
  2421. 1362(if)S
  2422. 1488(()S
  2423. ((bp)126 1572 A
  2424. 1740(=)S
  2425. (new_block(ldir_ptr,)798 1824 A
  2426. (ldir_ptr->i_size)))756 2664 A
  2427. 3462(==)S
  2428. (NIL_BUF))336 3588 A
  2429. 2790 V
  2430. (25051)210 648 A
  2431. (return(err_code);)714 1698 A
  2432. 2880 V
  2433. (25052)210 648 A
  2434. 1362(dp)S
  2435. 1488(=)S
  2436. (&bp->b_dir[0];)588 1572 A
  2437. 2970 V
  2438. (25053)210 648 A
  2439. (extended)336 1362 A
  2440. 1740(=)S
  2441. 1824(1;)S
  2442. 3060 V
  2443. (25054)210 648 A
  2444. 1110(})S
  2445. 3150 V
  2446. (25055)210 648 A
  2447. 3240 V
  2448. (25056)210 648 A
  2449. 1110(/*)S
  2450. ('bp')168 1236 A
  2451. (now)126 1446 A
  2452. (points)252 1614 A
  2453. 1908(to)S
  2454. 2034(a)S
  2455. (directory)378 2118 A
  2456. (block)210 2538 A
  2457. (with)168 2790 A
  2458. (space.)252 3000 A
  2459. ('dp')168 3294 A
  2460. (points)252 3504 A
  2461. 3798(to)S
  2462. (slot.)210 3924 A
  2463. 4176(*/)S
  2464. 3330 V
  2465. (25057)210 648 A
  2466. ((void))252 1110 A
  2467. (memset(dp->d_name,)756 1404 A
  2468. 2202(0,)S
  2469. ((size_t))336 2328 A
  2470. (NAME_MAX);)420 2706 A
  2471. 3168(/*)S
  2472. (clear)210 3294 A
  2473. (entry)210 3546 A
  2474. 3798(*/)S
  2475. 3420 V
  2476. (25058)210 648 A
  2477. (for)126 1110 A
  2478. 1278((i)S
  2479. 1404(=)S
  2480. 1488(0;)S
  2481. (string[i])378 1614 A
  2482. 2034(&&)S
  2483. 2160(i)S
  2484. 2244(<)S
  2485. (NAME_MAX;)378 2328 A
  2486. (i++))168 2748 A
  2487. (dp->d_name[i])546 2958 A
  2488. 3546(=)S
  2489. (string[i];)420 3630 A
  2490. 3510 V
  2491. (25059)210 648 A
  2492. 1110(sp)S
  2493. 1236(=)S
  2494. (ldir_ptr->i_sp;)630 1320 A
  2495. 3600 V
  2496. (25060)210 648 A
  2497. (dp->d_ino)378 1110 A
  2498. 1530(=)S
  2499. (conv2(sp->s_native,)798 1614 A
  2500. ((int))210 2454 A
  2501. (*numb);)294 2706 A
  2502. 3690 V
  2503. (25061)210 648 A
  2504. (bp->b_dirt)420 1110 A
  2505. 1572(=)S
  2506. (DIRTY;)252 1656 A
  2507. 3780 V
  2508. (25062)210 648 A
  2509. (put_block(bp,)546 1110 A
  2510. (DIRECTORY_BLOCK);)714 1698 A
  2511. 3870 V
  2512. (25063)210 648 A
  2513. (ldir_ptr->i_update)756 1110 A
  2514. 1908(|=)S
  2515. (CTIME)210 2034 A
  2516. 2286(|)S
  2517. (MTIME;)252 2370 A
  2518. 2706(/*)S
  2519. (mark)168 2832 A
  2520. (mtime)210 3042 A
  2521. (for)126 3294 A
  2522. (update)252 3462 A
  2523. (later)210 3756 A
  2524. 4008(*/)S
  2525. 3960 V
  2526. (25064)210 648 A
  2527. (ldir_ptr->i_dirt)672 1110 A
  2528. 1824(=)S
  2529. (DIRTY;)252 1908 A
  2530. 4050 V
  2531. (25065)210 648 A
  2532. 1110(if)S
  2533. ((new_slots)420 1236 A
  2534. 1698(>)S
  2535. (old_slots))420 1782 A
  2536. 2244({)S
  2537. 4140 V
  2538. (25066)210 648 A
  2539. (ldir_ptr->i_size)672 1362 A
  2540. 2076(=)S
  2541. ((off_t))294 2160 A
  2542. (new_slots)378 2496 A
  2543. 2916(*)S
  2544. (DIR_ENTRY_SIZE;)630 3000 A
  2545. 4230 V
  2546. (25067)210 648 A
  2547. 1362(/*)S
  2548. (Send)168 1488 A
  2549. (the)126 1698 A
  2550. (change)252 1866 A
  2551. 2160(to)S
  2552. (disk)168 2286 A
  2553. 2496(if)S
  2554. (the)126 2622 A
  2555. (directory)378 2790 A
  2556. 3210(is)S
  2557. (extended.)378 3336 A
  2558. 3756(*/)S
  2559. 4320 V
  2560. (25068)210 648 A
  2561. 1362(if)S
  2562. ((extended))420 1488 A
  2563. (rw_inode(ldir_ptr,)756 1950 A
  2564. (WRITING);)378 2748 A
  2565. 4410 V
  2566. (25069)210 648 A
  2567. 1110(})S
  2568. 4500 V
  2569. (25070)210 648 A
  2570. (return(OK);)462 1110 A
  2571. 4590 V
  2572. (25071)210 648 A
  2573. 1026(})S
  2574. 5040 V
  2575. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  2576. 5130 V
  2577. (src/fs/mount.c)588 2034 A
  2578. 5220 V
  2579. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  2580. 5400 V
  2581. (25100)210 648 A
  2582. 1026(/*)S
  2583. (This)168 1152 A
  2584. (file)168 1362 A
  2585. (performs)336 1572 A
  2586. (the)126 1950 A
  2587. (MOUNT)210 2118 A
  2588. (and)126 2370 A
  2589. (UMOUNT)252 2538 A
  2590. (system)252 2832 A
  2591. (calls.)252 3126 A
  2592. 5490 V
  2593. (25101)210 648 A
  2594. 1068(*)S
  2595. 5580 V
  2596. (25102)210 648 A
  2597. 1068(*)S
  2598. (The)126 1152 A
  2599. (entry)210 1320 A
  2600. (points)252 1572 A
  2601. (into)168 1866 A
  2602. (this)168 2076 A
  2603. (file)168 2286 A
  2604. (are)126 2496 A
  2605. 5670 V
  2606. (25103)210 648 A
  2607. 1068(*)S
  2608. (do_mount:)378 1236 A
  2609. (perform)294 1698 A
  2610. (the)126 2034 A
  2611. (MOUNT)210 2202 A
  2612. (system)252 2454 A
  2613. (call)168 2748 A
  2614. 5760 V
  2615. (25104)210 648 A
  2616. 1068(*)S
  2617. (do_umount:)420 1236 A
  2618. (perform)294 1698 A
  2619. (the)126 2034 A
  2620. (UMOUNT)252 2202 A
  2621. (system)252 2496 A
  2622. (call)168 2790 A
  2623. 5850 V
  2624. (25105)210 648 A
  2625. 1068(*/)S
  2626. 5940 V
  2627. (25106)210 648 A
  2628. 6030 V
  2629. (25107)210 648 A
  2630. (#include)336 1026 A
  2631. ("fs.h")252 1404 A
  2632. 6120 V
  2633. (25108)210 648 A
  2634. (#include)336 1026 A
  2635. (<fcntl.h>)378 1404 A
  2636. 6210 V
  2637. (25109)210 648 A
  2638. (#include)336 1026 A
  2639. (<minix/com.h>)546 1404 A
  2640. 8418 V
  2641. EP
  2642. %%Page: 346 346
  2643. BP
  2644. /slant 0 def
  2645. /height 0 def
  2646. 630 V
  2647. 12 B
  2648. (346)180 648 A
  2649. 11 R
  2650. 2105(File:)S
  2651. (src/fs/mount.c)632 2338 A
  2652. 10 R
  2653. 3402(MINIX)S
  2654. 3730(SOURCE)S
  2655. 4153(CODE)S
  2656. 900 V
  2657. 7 LST
  2658. (25110)210 648 A
  2659. (#include)336 1026 A
  2660. (<sys/stat.h>)504 1404 A
  2661. 990 V
  2662. (25111)210 648 A
  2663. (#include)336 1026 A
  2664. ("buf.h")294 1404 A
  2665. 1080 V
  2666. (25112)210 648 A
  2667. (#include)336 1026 A
  2668. ("dev.h")294 1404 A
  2669. 1170 V
  2670. (25113)210 648 A
  2671. (#include)336 1026 A
  2672. ("file.h")336 1404 A
  2673. 1260 V
  2674. (25114)210 648 A
  2675. (#include)336 1026 A
  2676. ("fproc.h")378 1404 A
  2677. 1350 V
  2678. (25115)210 648 A
  2679. (#include)336 1026 A
  2680. ("inode.h")378 1404 A
  2681. 1440 V
  2682. (25116)210 648 A
  2683. (#include)336 1026 A
  2684. ("param.h")378 1404 A
  2685. 1530 V
  2686. (25117)210 648 A
  2687. (#include)336 1026 A
  2688. ("super.h")378 1404 A
  2689. 1620 V
  2690. (25118)210 648 A
  2691. 1710 V
  2692. (25119)210 648 A
  2693. (PRIVATE)294 1026 A
  2694. (message)294 1362 A
  2695. (dev_mess;)378 1698 A
  2696. 1800 V
  2697. (25120)210 648 A
  2698. 1890 V
  2699. (25121)210 648 A
  2700. (FORWARD)294 1026 A
  2701. (_PROTOTYPE()462 1362 A
  2702. (dev_t)210 1866 A
  2703. (name_to_dev,)504 2118 A
  2704. ((char)210 2664 A
  2705. (*path))252 2916 A
  2706. 4050();)S
  2707. 1980 V
  2708. (25122)210 648 A
  2709. 2070 V
  2710. (25123)210 648 A
  2711. (/*===========================================================================*)3276 1026 A
  2712. 2160 V
  2713. (25124)210 648 A
  2714. 1068(*)S
  2715. (do_mount)336 2370 A
  2716. 4260(*)S
  2717. 2250 V
  2718. (25125)210 648 A
  2719. (*===========================================================================*/)3276 1068 A
  2720. 2340 V
  2721. (25126)210 648 A
  2722. (PUBLIC)252 1026 A
  2723. (int)126 1320 A
  2724. (do_mount())420 1488 A
  2725. 2430 V
  2726. (25127)210 648 A
  2727. 1026({)S
  2728. 2520 V
  2729. (25128)210 648 A
  2730. 1026(/*)S
  2731. (Perform)294 1152 A
  2732. (the)126 1488 A
  2733. (mount(name,)462 1656 A
  2734. (mfile,)252 2160 A
  2735. (rd_only))336 2454 A
  2736. (system)252 2832 A
  2737. (call.)210 3126 A
  2738. 3378(*/)S
  2739. 2610 V
  2740. (25129)210 648 A
  2741. 2700 V
  2742. (25130)210 648 A
  2743. (register)336 1110 A
  2744. (struct)252 1488 A
  2745. (inode)210 1782 A
  2746. (*rip,)210 2034 A
  2747. (*root_ip;)378 2286 A
  2748. 2790 V
  2749. (25131)210 648 A
  2750. (struct)252 1110 A
  2751. (super_block)462 1404 A
  2752. (*xp,)168 1908 A
  2753. (*sp;)168 2118 A
  2754. 2880 V
  2755. (25132)210 648 A
  2756. (dev_t)210 1110 A
  2757. (dev;)168 1362 A
  2758. 2970 V
  2759. (25133)210 648 A
  2760. (mode_t)252 1110 A
  2761. (bits;)210 1404 A
  2762. 3060 V
  2763. (25134)210 648 A
  2764. (int)126 1110 A
  2765. (rdir,)210 1278 A
  2766. (mdir;)210 1530 A
  2767. 2370(/*)S
  2768. (TRUE)168 2496 A
  2769. (iff)126 2706 A
  2770. ({root|mount})504 2874 A
  2771. (file)168 3420 A
  2772. 3630(is)S
  2773. (dir)126 3756 A
  2774. 3924(*/)S
  2775. 3150 V
  2776. (25135)210 648 A
  2777. (int)126 1110 A
  2778. 1278(r,)S
  2779. (found,)252 1404 A
  2780. (major,)252 1698 A
  2781. (task;)210 1992 A
  2782. 3240 V
  2783. (25136)210 648 A
  2784. 3330 V
  2785. (25137)210 648 A
  2786. 1110(/*)S
  2787. (Only)168 1236 A
  2788. (the)126 1446 A
  2789. (super-user)420 1614 A
  2790. (may)126 2076 A
  2791. 2244(do)S
  2792. (MOUNT.)252 2370 A
  2793. 2664(*/)S
  2794. 3420 V
  2795. (25138)210 648 A
  2796. 1110(if)S
  2797. ((!super_user))546 1236 A
  2798. (return(EPERM);)588 1824 A
  2799. 3510 V
  2800. (25139)210 648 A
  2801. 3600 V
  2802. (25140)210 648 A
  2803. 1110(/*)S
  2804. 1236(If)S
  2805. ('name')252 1362 A
  2806. 1656(is)S
  2807. (not)126 1782 A
  2808. (for)126 1950 A
  2809. 2118(a)S
  2810. (block)210 2202 A
  2811. (special)294 2454 A
  2812. (file,)210 2790 A
  2813. (return)252 3042 A
  2814. (error.)252 3336 A
  2815. 3630(*/)S
  2816. 3690 V
  2817. (25141)210 648 A
  2818. 1110(if)S
  2819. ((fetch_name(name1,)756 1236 A
  2820. (name1_length,)546 2034 A
  2821. (M1))126 2622 A
  2822. 2790(!=)S
  2823. (OK))126 2916 A
  2824. (return(err_code);)714 3084 A
  2825. 3780 V
  2826. (25142)210 648 A
  2827. 1110(if)S
  2828. 1236(()S
  2829. ((dev)168 1320 A
  2830. 1530(=)S
  2831. (name_to_dev(user_path)))966 1614 A
  2832. 2622(==)S
  2833. (NO_DEV))294 2748 A
  2834. (return(err_code);)714 3084 A
  2835. 3870 V
  2836. (25143)210 648 A
  2837. 3960 V
  2838. (25144)210 648 A
  2839. 1110(/*)S
  2840. (Scan)168 1236 A
  2841. (super)210 1446 A
  2842. (block)210 1698 A
  2843. (table)210 1950 A
  2844. 2202(to)S
  2845. (see)126 2328 A
  2846. 2496(if)S
  2847. (dev)126 2622 A
  2848. (already)294 2790 A
  2849. (mounted)294 3126 A
  2850. 3462(&)S
  2851. (find)168 3546 A
  2852. 3756(a)S
  2853. (free)168 3840 A
  2854. (slot.*/)294 4050 A
  2855. 4050 V
  2856. (25145)210 648 A
  2857. 1110(sp)S
  2858. 1236(=)S
  2859. (NIL_SUPER;)420 1320 A
  2860. 4140 V
  2861. (25146)210 648 A
  2862. (found)210 1110 A
  2863. 1362(=)S
  2864. (FALSE;)252 1446 A
  2865. 4230 V
  2866. (25147)210 648 A
  2867. (for)126 1110 A
  2868. ((xp)126 1278 A
  2869. 1446(=)S
  2870. (&super_block[0];)672 1530 A
  2871. 2244(xp)S
  2872. 2370(<)S
  2873. (&super_block[NR_SUPERS];)1008 2454 A
  2874. (xp++))210 3504 A
  2875. 3756({)S
  2876. 4320 V
  2877. (25148)210 648 A
  2878. 1362(if)S
  2879. ((xp->s_dev)420 1488 A
  2880. 1950(==)S
  2881. (dev))168 2076 A
  2882. (found)210 2286 A
  2883. 2538(=)S
  2884. (TRUE;)210 2622 A
  2885. 3042(/*)S
  2886. 3168(is)S
  2887. 3294(it)S
  2888. (mounted)294 3420 A
  2889. (already?)336 3756 A
  2890. 4134(*/)S
  2891. 4410 V
  2892. (25149)210 648 A
  2893. 1362(if)S
  2894. ((xp->s_dev)420 1488 A
  2895. 1950(==)S
  2896. (NO_DEV))294 2076 A
  2897. 2412(sp)S
  2898. 2538(=)S
  2899. (xp;)126 2622 A
  2900. 3042(/*)S
  2901. (record)252 3168 A
  2902. (free)168 3462 A
  2903. (slot)168 3672 A
  2904. 3882(*/)S
  2905. 4500 V
  2906. (25150)210 648 A
  2907. 1110(})S
  2908. 4590 V
  2909. (25151)210 648 A
  2910. 1110(if)S
  2911. ((found))294 1236 A
  2912. (return(EBUSY);)588 1572 A
  2913. 2370(/*)S
  2914. (already)294 2496 A
  2915. (mounted)294 2832 A
  2916. 3168(*/)S
  2917. 4680 V
  2918. (25152)210 648 A
  2919. 1110(if)S
  2920. ((sp)126 1236 A
  2921. 1404(==)S
  2922. (NIL_SUPER))420 1530 A
  2923. (return(ENFILE);)630 1992 A
  2924. 2706(/*)S
  2925. 2832(no)S
  2926. (super)210 2958 A
  2927. (block)210 3210 A
  2928. (available)378 3462 A
  2929. 3882(*/)S
  2930. 4770 V
  2931. (25153)210 648 A
  2932. 4860 V
  2933. (25154)210 648 A
  2934. (dev_mess.m_type)630 1110 A
  2935. 1782(=)S
  2936. (DEV_OPEN;)378 1866 A
  2937. 2706(/*)S
  2938. (distinguish)462 2832 A
  2939. (from)168 3336 A
  2940. (close)210 3546 A
  2941. 3798(*/)S
  2942. 4950 V
  2943. (25155)210 648 A
  2944. (dev_mess.DEVICE)630 1110 A
  2945. 1782(=)S
  2946. (dev;)168 1866 A
  2947. 2706(/*)S
  2948. (Touch)210 2832 A
  2949. (the)126 3084 A
  2950. (device.)294 3252 A
  2951. 3588(*/)S
  2952. 5040 V
  2953. (25156)210 648 A
  2954. 1110(if)S
  2955. ((rd_only))378 1236 A
  2956. (dev_mess.COUNT)588 1656 A
  2957. 2286(=)S
  2958. (R_BIT;)252 2370 A
  2959. 5130 V
  2960. (25157)210 648 A
  2961. (else)168 1110 A
  2962. (dev_mess.COUNT)588 1362 A
  2963. 1992(=)S
  2964. (R_BIT|W_BIT;)504 2076 A
  2965. 5220 V
  2966. (25158)210 648 A
  2967. 5310 V
  2968. (25159)210 648 A
  2969. (major)210 1110 A
  2970. 1362(=)S
  2971. ((dev)168 1446 A
  2972. 1656(>>)S
  2973. (MAJOR))252 1782 A
  2974. 2076(&)S
  2975. (BYTE;)210 2160 A
  2976. 5400 V
  2977. (25160)210 648 A
  2978. 1110(if)S
  2979. ((major)252 1236 A
  2980. 1530(<=)S
  2981. 1656(0)S
  2982. 1740(||)S
  2983. (major)210 1866 A
  2984. 2118(>=)S
  2985. (max_major))420 2244 A
  2986. (return(ENODEV);)630 2706 A
  2987. 5490 V
  2988. (25161)210 648 A
  2989. (task)168 1110 A
  2990. 1320(=)S
  2991. (dmap[major].dmap_task;)924 1404 A
  2992. 2706(/*)S
  2993. (device)252 2832 A
  2994. (task)168 3126 A
  2995. 3336(nr)S
  2996. 3462(*/)S
  2997. 5580 V
  2998. (25162)210 648 A
  2999. ((*dmap[major].dmap_open)(task,)1260 1110 A
  3000. (&dev_mess);)462 2412 A
  3001. 5670 V
  3002. (25163)210 648 A
  3003. 1110(if)S
  3004. ((dev_mess.REP_STATUS)840 1236 A
  3005. 2118(!=)S
  3006. (OK))126 2244 A
  3007. (return(EINVAL);)630 2412 A
  3008. 5760 V
  3009. (25164)210 648 A
  3010. 5850 V
  3011. (25165)210 648 A
  3012. 1110(/*)S
  3013. (Fill)168 1236 A
  3014. 1446(in)S
  3015. (the)126 1572 A
  3016. (super)210 1740 A
  3017. (block.)252 1992 A
  3018. 2286(*/)S
  3019. 5940 V
  3020. (25166)210 648 A
  3021. (sp->s_dev)378 1110 A
  3022. 1530(=)S
  3023. (dev;)168 1614 A
  3024. 2370(/*)S
  3025. (read_super())504 2496 A
  3026. (needs)210 3042 A
  3027. 3294(to)S
  3028. (know)168 3420 A
  3029. (which)210 3630 A
  3030. (dev)126 3882 A
  3031. 4050(*/)S
  3032. 6030 V
  3033. (25167)210 648 A
  3034. 1110(r)S
  3035. 1194(=)S
  3036. (read_super(sp);)630 1278 A
  3037. 6120 V
  3038. (25168)210 648 A
  3039. 6210 V
  3040. (25169)210 648 A
  3041. 1110(/*)S
  3042. 1236(Is)S
  3043. 1362(it)S
  3044. (recognized)420 1488 A
  3045. 1950(as)S
  3046. 2076(a)S
  3047. (Minix)210 2160 A
  3048. (filesystem?)462 2412 A
  3049. 2916(*/)S
  3050. 8418 V
  3051. EP
  3052. %%Page: 347 347
  3053. BP
  3054. /slant 0 def
  3055. /height 0 def
  3056. 630 V
  3057. 10 R
  3058. 648(MINIX)S
  3059. 976(SOURCE)S
  3060. 1399(CODE)S
  3061. 11 R
  3062. 2105(File:)S
  3063. (src/fs/mount.c)632 2338 A
  3064. 12 B
  3065. (347)180 4248 A
  3066. 900 V
  3067. 7 LST
  3068. (25170)210 648 A
  3069. 1110(if)S
  3070. 1236((r)S
  3071. 1362(!=)S
  3072. (OK))126 1488 A
  3073. 1656({)S
  3074. 990 V
  3075. (25171)210 648 A
  3076. (dev_mess.m_type)630 1362 A
  3077. 2034(=)S
  3078. (DEV_CLOSE;)420 2118 A
  3079. 1080 V
  3080. (25172)210 648 A
  3081. (dev_mess.DEVICE)630 1362 A
  3082. 2034(=)S
  3083. (dev;)168 2118 A
  3084. 1170 V
  3085. (25173)210 648 A
  3086. ((*dmap[major].dmap_close)(task,)1302 1362 A
  3087. (&dev_mess);)462 2706 A
  3088. 1260 V
  3089. (25174)210 648 A
  3090. (return(r);)420 1362 A
  3091. 1350 V
  3092. (25175)210 648 A
  3093. 1110(})S
  3094. 1440 V
  3095. (25176)210 648 A
  3096. 1530 V
  3097. (25177)210 648 A
  3098. 1110(/*)S
  3099. (Now)126 1236 A
  3100. (get)126 1404 A
  3101. (the)126 1572 A
  3102. (inode)210 1740 A
  3103. 1992(of)S
  3104. (the)126 2118 A
  3105. (file)168 2286 A
  3106. 2496(to)S
  3107. 2622(be)S
  3108. (mounted)294 2748 A
  3109. (on.)126 3084 A
  3110. 3252(*/)S
  3111. 1620 V
  3112. (25178)210 648 A
  3113. 1110(if)S
  3114. ((fetch_name(name2,)756 1236 A
  3115. (name2_length,)546 2034 A
  3116. (M1))126 2622 A
  3117. 2790(!=)S
  3118. (OK))126 2916 A
  3119. 3084({)S
  3120. 1710 V
  3121. (25179)210 648 A
  3122. (sp->s_dev)378 1362 A
  3123. 1782(=)S
  3124. (NO_DEV;)294 1866 A
  3125. 1800 V
  3126. (25180)210 648 A
  3127. (dev_mess.m_type)630 1362 A
  3128. 2034(=)S
  3129. (DEV_CLOSE;)420 2118 A
  3130. 1890 V
  3131. (25181)210 648 A
  3132. (dev_mess.DEVICE)630 1362 A
  3133. 2034(=)S
  3134. (dev;)168 2118 A
  3135. 1980 V
  3136. (25182)210 648 A
  3137. ((*dmap[major].dmap_close)(task,)1302 1362 A
  3138. (&dev_mess);)462 2706 A
  3139. 2070 V
  3140. (25183)210 648 A
  3141. (return(err_code);)714 1362 A
  3142. 2160 V
  3143. (25184)210 648 A
  3144. 1110(})S
  3145. 2250 V
  3146. (25185)210 648 A
  3147. 1110(if)S
  3148. 1236(()S
  3149. ((rip)168 1320 A
  3150. 1530(=)S
  3151. (eat_path(user_path)))840 1614 A
  3152. 2496(==)S
  3153. (NIL_INODE))420 2622 A
  3154. 3084({)S
  3155. 2340 V
  3156. (25186)210 648 A
  3157. (sp->s_dev)378 1362 A
  3158. 1782(=)S
  3159. (NO_DEV;)294 1866 A
  3160. 2430 V
  3161. (25187)210 648 A
  3162. (dev_mess.m_type)630 1362 A
  3163. 2034(=)S
  3164. (DEV_CLOSE;)420 2118 A
  3165. 2520 V
  3166. (25188)210 648 A
  3167. (dev_mess.DEVICE)630 1362 A
  3168. 2034(=)S
  3169. (dev;)168 2118 A
  3170. 2610 V
  3171. (25189)210 648 A
  3172. ((*dmap[major].dmap_close)(task,)1302 1362 A
  3173. (&dev_mess);)462 2706 A
  3174. 2700 V
  3175. (25190)210 648 A
  3176. (return(err_code);)714 1362 A
  3177. 2790 V
  3178. (25191)210 648 A
  3179. 1110(})S
  3180. 2880 V
  3181. (25192)210 648 A
  3182. 2970 V
  3183. (25193)210 648 A
  3184. 1110(/*)S
  3185. 1236(It)S
  3186. (may)126 1362 A
  3187. (not)126 1530 A
  3188. 1698(be)S
  3189. (busy.)210 1824 A
  3190. 2076(*/)S
  3191. 3060 V
  3192. (25194)210 648 A
  3193. 1110(r)S
  3194. 1194(=)S
  3195. (OK;)126 1278 A
  3196. 3150 V
  3197. (25195)210 648 A
  3198. 1110(if)S
  3199. ((rip->i_count)546 1236 A
  3200. 1824(>)S
  3201. 1908(1))S
  3202. 2034(r)S
  3203. 2118(=)S
  3204. (EBUSY;)252 2202 A
  3205. 3240 V
  3206. (25196)210 648 A
  3207. 3330 V
  3208. (25197)210 648 A
  3209. 1110(/*)S
  3210. 1236(It)S
  3211. (may)126 1362 A
  3212. (not)126 1530 A
  3213. 1698(be)S
  3214. (special.)336 1824 A
  3215. 2202(*/)S
  3216. 3420 V
  3217. (25198)210 648 A
  3218. (bits)168 1110 A
  3219. 1320(=)S
  3220. (rip->i_mode)462 1404 A
  3221. 1908(&)S
  3222. (I_TYPE;)294 1992 A
  3223. 3510 V
  3224. (25199)210 648 A
  3225. 1110(if)S
  3226. ((bits)210 1236 A
  3227. 1488(==)S
  3228. (I_BLOCK_SPECIAL)630 1614 A
  3229. 2286(||)S
  3230. (bits)168 2412 A
  3231. 2622(==)S
  3232. (I_CHAR_SPECIAL))630 2748 A
  3233. 3420(r)S
  3234. 3504(=)S
  3235. (ENOTDIR;)336 3588 A
  3236. 3600 V
  3237. (25200)210 648 A
  3238. 3690 V
  3239. (25201)210 648 A
  3240. 1110(/*)S
  3241. (Get)126 1236 A
  3242. (the)126 1404 A
  3243. (root)168 1572 A
  3244. (inode)210 1782 A
  3245. 2034(of)S
  3246. (the)126 2160 A
  3247. (mounted)294 2328 A
  3248. (file)168 2664 A
  3249. (system.)294 2874 A
  3250. 3210(*/)S
  3251. 3780 V
  3252. (25202)210 648 A
  3253. (root_ip)294 1110 A
  3254. 1446(=)S
  3255. (NIL_INODE;)420 1530 A
  3256. 2370(/*)S
  3257. 2496(if)S
  3258. ('r')126 2622 A
  3259. (not)126 2790 A
  3260. (OK,)126 2958 A
  3261. (make)168 3126 A
  3262. (sure)168 3336 A
  3263. (this)168 3546 A
  3264. 3756(is)S
  3265. (defined)294 3882 A
  3266. 4218(*/)S
  3267. 3870 V
  3268. (25203)210 648 A
  3269. 1110(if)S
  3270. 1236((r)S
  3271. 1362(==)S
  3272. (OK))126 1488 A
  3273. 1656({)S
  3274. 3960 V
  3275. (25204)210 648 A
  3276. 1362(if)S
  3277. 1488(()S
  3278. ((root_ip)336 1572 A
  3279. 1950(=)S
  3280. (get_inode(dev,)588 2034 A
  3281. (ROOT_INODE)))504 2664 A
  3282. 3210(==)S
  3283. (NIL_INODE))420 3336 A
  3284. 3798(r)S
  3285. 3882(=)S
  3286. (err_code;)378 3966 A
  3287. 4050 V
  3288. (25205)210 648 A
  3289. 1110(})S
  3290. 4140 V
  3291. (25206)210 648 A
  3292. 1110(if)S
  3293. ((root_ip)336 1236 A
  3294. 1614(!=)S
  3295. (NIL_INODE)378 1740 A
  3296. 2160(&&)S
  3297. (root_ip->i_mode)630 2286 A
  3298. 2958(==)S
  3299. 3084(0))S
  3300. 3210(r)S
  3301. 3294(=)S
  3302. (EINVAL;)294 3378 A
  3303. 4230 V
  3304. (25207)210 648 A
  3305. 4320 V
  3306. (25208)210 648 A
  3307. 1110(/*)S
  3308. (File)168 1236 A
  3309. (types)210 1446 A
  3310. 1698(of)S
  3311. ('rip')210 1824 A
  3312. (and)126 2076 A
  3313. ('root_ip')378 2244 A
  3314. (may)126 2664 A
  3315. (not)126 2832 A
  3316. (conflict.)378 3000 A
  3317. 3420(*/)S
  3318. 4410 V
  3319. (25209)210 648 A
  3320. 1110(if)S
  3321. 1236((r)S
  3322. 1362(==)S
  3323. (OK))126 1488 A
  3324. 1656({)S
  3325. 4500 V
  3326. (25210)210 648 A
  3327. (mdir)168 1362 A
  3328. 1572(=)S
  3329. (((rip->i_mode)546 1656 A
  3330. 2244(&)S
  3331. (I_TYPE))294 2328 A
  3332. 2664(==)S
  3333. (I_DIRECTORY);)546 2790 A
  3334. 3420(/*)S
  3335. (TRUE)168 3546 A
  3336. (iff)126 3756 A
  3337. (dir)126 3924 A
  3338. 4092(*/)S
  3339. 4590 V
  3340. (25211)210 648 A
  3341. (rdir)168 1362 A
  3342. 1572(=)S
  3343. (((root_ip->i_mode)714 1656 A
  3344. 2412(&)S
  3345. (I_TYPE))294 2496 A
  3346. 2832(==)S
  3347. (I_DIRECTORY);)546 2958 A
  3348. 4680 V
  3349. (25212)210 648 A
  3350. 1362(if)S
  3351. ((!mdir)252 1488 A
  3352. 1782(&&)S
  3353. (rdir))210 1908 A
  3354. 2160(r)S
  3355. 2244(=)S
  3356. (EISDIR;)294 2328 A
  3357. 4770 V
  3358. (25213)210 648 A
  3359. 1110(})S
  3360. 4860 V
  3361. (25214)210 648 A
  3362. 4950 V
  3363. (25215)210 648 A
  3364. 1110(/*)S
  3365. 1236(If)S
  3366. (error,)252 1362 A
  3367. (return)252 1656 A
  3368. (the)126 1950 A
  3369. (super)210 2118 A
  3370. (block)210 2370 A
  3371. (and)126 2622 A
  3372. (both)168 2790 A
  3373. (inodes;)294 3000 A
  3374. (release)294 3336 A
  3375. (the)126 3672 A
  3376. (maps.)210 3840 A
  3377. 4092(*/)S
  3378. 5040 V
  3379. (25216)210 648 A
  3380. 1110(if)S
  3381. 1236((r)S
  3382. 1362(!=)S
  3383. (OK))126 1488 A
  3384. 1656({)S
  3385. 5130 V
  3386. (25217)210 648 A
  3387. (put_inode(rip);)630 1362 A
  3388. 5220 V
  3389. (25218)210 648 A
  3390. (put_inode(root_ip);)798 1362 A
  3391. 5310 V
  3392. (25219)210 648 A
  3393. ((void))252 1362 A
  3394. (do_sync();)420 1656 A
  3395. 5400 V
  3396. (25220)210 648 A
  3397. (invalidate(dev);)672 1362 A
  3398. 5490 V
  3399. (25221)210 648 A
  3400. 5580 V
  3401. (25222)210 648 A
  3402. (sp->s_dev)378 1362 A
  3403. 1782(=)S
  3404. (NO_DEV;)294 1866 A
  3405. 5670 V
  3406. (25223)210 648 A
  3407. (dev_mess.m_type)630 1362 A
  3408. 2034(=)S
  3409. (DEV_CLOSE;)420 2118 A
  3410. 5760 V
  3411. (25224)210 648 A
  3412. (dev_mess.DEVICE)630 1362 A
  3413. 2034(=)S
  3414. (dev;)168 2118 A
  3415. 5850 V
  3416. (25225)210 648 A
  3417. ((*dmap[major].dmap_close)(task,)1302 1362 A
  3418. (&dev_mess);)462 2706 A
  3419. 5940 V
  3420. (25226)210 648 A
  3421. (return(r);)420 1362 A
  3422. 6030 V
  3423. (25227)210 648 A
  3424. 1110(})S
  3425. 6120 V
  3426. (25228)210 648 A
  3427. 6210 V
  3428. (25229)210 648 A
  3429. 1110(/*)S
  3430. (Nothing)294 1236 A
  3431. (else)168 1572 A
  3432. (can)126 1782 A
  3433. 1950(go)S
  3434. (wrong.)252 2076 A
  3435. (Perform)294 2412 A
  3436. (the)126 2748 A
  3437. (mount.)252 2916 A
  3438. 3210(*/)S
  3439. 8418 V
  3440. EP
  3441. %%Page: 348 348
  3442. BP
  3443. /slant 0 def
  3444. /height 0 def
  3445. 630 V
  3446. 12 B
  3447. (348)180 648 A
  3448. 11 R
  3449. 2105(File:)S
  3450. (src/fs/mount.c)632 2338 A
  3451. 10 R
  3452. 3402(MINIX)S
  3453. 3730(SOURCE)S
  3454. 4153(CODE)S
  3455. 900 V
  3456. 7 LST
  3457. (25230)210 648 A
  3458. (rip->i_mount)504 1110 A
  3459. 1656(=)S
  3460. (I_MOUNT;)336 1740 A
  3461. 2370(/*)S
  3462. (this)168 2496 A
  3463. (bit)126 2706 A
  3464. (says)168 2874 A
  3465. (the)126 3084 A
  3466. (inode)210 3252 A
  3467. 3504(is)S
  3468. (mounted)294 3630 A
  3469. 3966(on)S
  3470. 4092(*/)S
  3471. 990 V
  3472. (25231)210 648 A
  3473. (sp->s_imount)504 1110 A
  3474. 1656(=)S
  3475. (rip;)168 1740 A
  3476. 1080 V
  3477. (25232)210 648 A
  3478. (sp->s_isup)420 1110 A
  3479. 1572(=)S
  3480. (root_ip;)336 1656 A
  3481. 1170 V
  3482. (25233)210 648 A
  3483. (sp->s_rd_only)546 1110 A
  3484. 1698(=)S
  3485. (rd_only;)336 1782 A
  3486. 1260 V
  3487. (25234)210 648 A
  3488. (return(OK);)462 1110 A
  3489. 1350 V
  3490. (25235)210 648 A
  3491. 1026(})S
  3492. 1620 V
  3493. (25238)210 648 A
  3494. (/*===========================================================================*)3276 1026 A
  3495. 1710 V
  3496. (25239)210 648 A
  3497. 1068(*)S
  3498. (do_umount)378 2370 A
  3499. 4260(*)S
  3500. 1800 V
  3501. (25240)210 648 A
  3502. (*===========================================================================*/)3276 1068 A
  3503. 1890 V
  3504. (25241)210 648 A
  3505. (PUBLIC)252 1026 A
  3506. (int)126 1320 A
  3507. (do_umount())462 1488 A
  3508. 1980 V
  3509. (25242)210 648 A
  3510. 1026({)S
  3511. 2070 V
  3512. (25243)210 648 A
  3513. 1026(/*)S
  3514. (Perform)294 1152 A
  3515. (the)126 1488 A
  3516. (umount(name))504 1656 A
  3517. (system)252 2202 A
  3518. (call.)210 2496 A
  3519. 2748(*/)S
  3520. 2160 V
  3521. (25244)210 648 A
  3522. 2250 V
  3523. (25245)210 648 A
  3524. (register)336 1110 A
  3525. (struct)252 1488 A
  3526. (inode)210 1782 A
  3527. (*rip;)210 2034 A
  3528. 2340 V
  3529. (25246)210 648 A
  3530. (struct)252 1110 A
  3531. (super_block)462 1404 A
  3532. (*sp,)168 1908 A
  3533. (*sp1;)210 2118 A
  3534. 2430 V
  3535. (25247)210 648 A
  3536. (dev_t)210 1110 A
  3537. (dev;)168 1362 A
  3538. 2520 V
  3539. (25248)210 648 A
  3540. (int)126 1110 A
  3541. (count;)252 1278 A
  3542. 2610 V
  3543. (25249)210 648 A
  3544. (int)126 1110 A
  3545. (major,)252 1278 A
  3546. (task;)210 1572 A
  3547. 2700 V
  3548. (25250)210 648 A
  3549. 2790 V
  3550. (25251)210 648 A
  3551. 1110(/*)S
  3552. (Only)168 1236 A
  3553. (the)126 1446 A
  3554. (super-user)420 1614 A
  3555. (may)126 2076 A
  3556. 2244(do)S
  3557. (UMOUNT.)294 2370 A
  3558. 2706(*/)S
  3559. 2880 V
  3560. (25252)210 648 A
  3561. 1110(if)S
  3562. ((!super_user))546 1236 A
  3563. (return(EPERM);)588 1824 A
  3564. 2970 V
  3565. (25253)210 648 A
  3566. 3060 V
  3567. (25254)210 648 A
  3568. 1110(/*)S
  3569. 1236(If)S
  3570. ('name')252 1362 A
  3571. 1656(is)S
  3572. (not)126 1782 A
  3573. (for)126 1950 A
  3574. 2118(a)S
  3575. (block)210 2202 A
  3576. (special)294 2454 A
  3577. (file,)210 2790 A
  3578. (return)252 3042 A
  3579. (error.)252 3336 A
  3580. 3630(*/)S
  3581. 3150 V
  3582. (25255)210 648 A
  3583. 1110(if)S
  3584. ((fetch_name(name,)714 1236 A
  3585. (name_length,)504 1992 A
  3586. (M3))126 2538 A
  3587. 2706(!=)S
  3588. (OK))126 2832 A
  3589. (return(err_code);)714 3000 A
  3590. 3240 V
  3591. (25256)210 648 A
  3592. 1110(if)S
  3593. 1236(()S
  3594. ((dev)168 1320 A
  3595. 1530(=)S
  3596. (name_to_dev(user_path)))966 1614 A
  3597. 2622(==)S
  3598. (NO_DEV))294 2748 A
  3599. (return(err_code);)714 3084 A
  3600. 3330 V
  3601. (25257)210 648 A
  3602. 3420 V
  3603. (25258)210 648 A
  3604. 1110(/*)S
  3605. (See)126 1236 A
  3606. 1404(if)S
  3607. (the)126 1530 A
  3608. (mounted)294 1698 A
  3609. (device)252 2034 A
  3610. 2328(is)S
  3611. (busy.)210 2454 A
  3612. (Only)168 2748 A
  3613. 2958(1)S
  3614. (inode)210 3042 A
  3615. (using)210 3294 A
  3616. 3546(it)S
  3617. (should)252 3672 A
  3618. 3966(be)S
  3619. 3510 V
  3620. (25259)210 648 A
  3621. 1152(*)S
  3622. (open)168 1236 A
  3623. 1446(--)S
  3624. (the)126 1572 A
  3625. (root)168 1740 A
  3626. (inode)210 1950 A
  3627. 2202(--)S
  3628. (and)126 2328 A
  3629. (that)168 2496 A
  3630. (inode)210 2706 A
  3631. (only)168 2958 A
  3632. 3168(1)S
  3633. (time.)210 3252 A
  3634. 3600 V
  3635. (25260)210 648 A
  3636. 1152(*/)S
  3637. 3690 V
  3638. (25261)210 648 A
  3639. (count)210 1110 A
  3640. 1362(=)S
  3641. 1446(0;)S
  3642. 3780 V
  3643. (25262)210 648 A
  3644. (for)126 1110 A
  3645. ((rip)168 1278 A
  3646. 1488(=)S
  3647. (&inode[0];)420 1572 A
  3648. (rip<)168 2034 A
  3649. (&inode[NR_INODES];)756 2244 A
  3650. (rip++))252 3042 A
  3651. 3870 V
  3652. (25263)210 648 A
  3653. 1362(if)S
  3654. ((rip->i_count)546 1488 A
  3655. 2076(>)S
  3656. 2160(0)S
  3657. 2244(&&)S
  3658. (rip->i_dev)420 2370 A
  3659. 2832(==)S
  3660. (dev))168 2958 A
  3661. (count)210 3168 A
  3662. 3420(+=)S
  3663. (rip->i_count;)546 3546 A
  3664. 3960 V
  3665. (25264)210 648 A
  3666. 1110(if)S
  3667. ((count)252 1236 A
  3668. 1530(>)S
  3669. 1614(1))S
  3670. (return(EBUSY);)588 1740 A
  3671. 2370(/*)S
  3672. (can't)210 2496 A
  3673. (umount)252 2748 A
  3674. 3042(a)S
  3675. (busy)168 3126 A
  3676. (file)168 3336 A
  3677. (system)252 3546 A
  3678. 3840(*/)S
  3679. 4050 V
  3680. (25265)210 648 A
  3681. 4140 V
  3682. (25266)210 648 A
  3683. 1110(/*)S
  3684. (Find)168 1236 A
  3685. (the)126 1446 A
  3686. (super)210 1614 A
  3687. (block.)252 1866 A
  3688. 2160(*/)S
  3689. 4230 V
  3690. (25267)210 648 A
  3691. 1110(sp)S
  3692. 1236(=)S
  3693. (NIL_SUPER;)420 1320 A
  3694. 4320 V
  3695. (25268)210 648 A
  3696. (for)126 1110 A
  3697. ((sp1)168 1278 A
  3698. 1488(=)S
  3699. (&super_block[0];)672 1572 A
  3700. (sp1)126 2286 A
  3701. 2454(<)S
  3702. (&super_block[NR_SUPERS];)1008 2538 A
  3703. (sp1++))252 3588 A
  3704. 3882({)S
  3705. 4410 V
  3706. (25269)210 648 A
  3707. 1362(if)S
  3708. ((sp1->s_dev)462 1488 A
  3709. 1992(==)S
  3710. (dev))168 2118 A
  3711. 2328({)S
  3712. 4500 V
  3713. (25270)210 648 A
  3714. 1698(sp)S
  3715. 1824(=)S
  3716. (sp1;)168 1908 A
  3717. 4590 V
  3718. (25271)210 648 A
  3719. (break;)252 1698 A
  3720. 4680 V
  3721. (25272)210 648 A
  3722. 1362(})S
  3723. 4770 V
  3724. (25273)210 648 A
  3725. 1110(})S
  3726. 4860 V
  3727. (25274)210 648 A
  3728. 4950 V
  3729. (25275)210 648 A
  3730. 1110(/*)S
  3731. (Sync)168 1236 A
  3732. (the)126 1446 A
  3733. (disk,)210 1614 A
  3734. (and)126 1866 A
  3735. (invalidate)420 2034 A
  3736. (cache.)252 2496 A
  3737. 2790(*/)S
  3738. 5040 V
  3739. (25276)210 648 A
  3740. ((void))252 1110 A
  3741. (do_sync();)420 1404 A
  3742. 2370(/*)S
  3743. (force)210 2496 A
  3744. (any)126 2748 A
  3745. (cached)252 2916 A
  3746. (blocks)252 3210 A
  3747. (out)126 3504 A
  3748. 3672(of)S
  3749. (memory)252 3798 A
  3750. 4092(*/)S
  3751. 5130 V
  3752. (25277)210 648 A
  3753. (invalidate(dev);)672 1110 A
  3754. 2370(/*)S
  3755. (invalidate)420 2496 A
  3756. (cache)210 2958 A
  3757. (entries)294 3210 A
  3758. (for)126 3546 A
  3759. (this)168 3714 A
  3760. (dev)126 3924 A
  3761. 4092(*/)S
  3762. 5220 V
  3763. (25278)210 648 A
  3764. 1110(if)S
  3765. ((sp)126 1236 A
  3766. 1404(==)S
  3767. (NIL_SUPER))420 1530 A
  3768. (return(EINVAL);)630 1992 A
  3769. 5310 V
  3770. (25279)210 648 A
  3771. 5400 V
  3772. (25280)210 648 A
  3773. (major)210 1110 A
  3774. 1362(=)S
  3775. ((dev)168 1446 A
  3776. 1656(>>)S
  3777. (MAJOR))252 1782 A
  3778. 2076(&)S
  3779. (BYTE;)210 2160 A
  3780. 2706(/*)S
  3781. (major)210 2832 A
  3782. (device)252 3084 A
  3783. 3378(nr)S
  3784. 3504(*/)S
  3785. 5490 V
  3786. (25281)210 648 A
  3787. (task)168 1110 A
  3788. 1320(=)S
  3789. (dmap[major].dmap_task;)924 1404 A
  3790. 2370(/*)S
  3791. (device)252 2496 A
  3792. (task)168 2790 A
  3793. 3000(nr)S
  3794. 3126(*/)S
  3795. 5580 V
  3796. (25282)210 648 A
  3797. (dev_mess.m_type)630 1110 A
  3798. 1782(=)S
  3799. (DEV_CLOSE;)420 1866 A
  3800. 2706(/*)S
  3801. (distinguish)462 2832 A
  3802. (from)168 3336 A
  3803. (open)168 3546 A
  3804. 3756(*/)S
  3805. 5670 V
  3806. (25283)210 648 A
  3807. (dev_mess.DEVICE)630 1110 A
  3808. 1782(=)S
  3809. (dev;)168 1866 A
  3810. 5760 V
  3811. (25284)210 648 A
  3812. ((*dmap[major].dmap_close)(task,)1302 1110 A
  3813. (&dev_mess);)462 2454 A
  3814. 5850 V
  3815. (25285)210 648 A
  3816. 5940 V
  3817. (25286)210 648 A
  3818. 1110(/*)S
  3819. (Finish)252 1236 A
  3820. (off)126 1530 A
  3821. (the)126 1698 A
  3822. (unmount.)336 1866 A
  3823. 2244(*/)S
  3824. 6030 V
  3825. (25287)210 648 A
  3826. (sp->s_imount->i_mount)882 1110 A
  3827. 2034(=)S
  3828. (NO_MOUNT;)378 2118 A
  3829. 2706(/*)S
  3830. (inode)210 2832 A
  3831. (returns)294 3084 A
  3832. 3420(to)S
  3833. (normal)252 3546 A
  3834. 3840(*/)S
  3835. 6120 V
  3836. (25288)210 648 A
  3837. (put_inode(sp->s_imount);)1008 1110 A
  3838. 2370(/*)S
  3839. (release)294 2496 A
  3840. (the)126 2832 A
  3841. (inode)210 3000 A
  3842. (mounted)294 3252 A
  3843. 3588(on)S
  3844. 3714(*/)S
  3845. 6210 V
  3846. (25289)210 648 A
  3847. (put_inode(sp->s_isup);)924 1110 A
  3848. 2370(/*)S
  3849. (release)294 2496 A
  3850. (the)126 2832 A
  3851. (root)168 3000 A
  3852. (inode)210 3210 A
  3853. 3462(of)S
  3854. (the)126 3588 A
  3855. (mounted)294 3756 A
  3856. 4092(fs)S
  3857. 4218(*/)S
  3858. 8418 V
  3859. EP
  3860. %%Page: 349 349
  3861. BP
  3862. /slant 0 def
  3863. /height 0 def
  3864. 630 V
  3865. 10 R
  3866. 648(MINIX)S
  3867. 976(SOURCE)S
  3868. 1399(CODE)S
  3869. 11 R
  3870. 2105(File:)S
  3871. (src/fs/mount.c)632 2338 A
  3872. 12 B
  3873. (349)180 4248 A
  3874. 900 V
  3875. 7 LST
  3876. (25290)210 648 A
  3877. (sp->s_imount)504 1110 A
  3878. 1656(=)S
  3879. (NIL_INODE;)420 1740 A
  3880. 990 V
  3881. (25291)210 648 A
  3882. (sp->s_dev)378 1110 A
  3883. 1530(=)S
  3884. (NO_DEV;)294 1614 A
  3885. 1080 V
  3886. (25292)210 648 A
  3887. (return(OK);)462 1110 A
  3888. 1170 V
  3889. (25293)210 648 A
  3890. 1026(})S
  3891. 1440 V
  3892. (25296)210 648 A
  3893. (/*===========================================================================*)3276 1026 A
  3894. 1530 V
  3895. (25297)210 648 A
  3896. 1068(*)S
  3897. (name_to_dev)462 2370 A
  3898. 4260(*)S
  3899. 1620 V
  3900. (25298)210 648 A
  3901. (*===========================================================================*/)3276 1068 A
  3902. 1710 V
  3903. (25299)210 648 A
  3904. (PRIVATE)294 1026 A
  3905. (dev_t)210 1362 A
  3906. (name_to_dev(path))714 1614 A
  3907. 1800 V
  3908. (25300)210 648 A
  3909. (char)168 1026 A
  3910. (*path;)252 1236 A
  3911. 2370(/*)S
  3912. (pointer)294 2496 A
  3913. 2832(to)S
  3914. (path)168 2958 A
  3915. (name)168 3168 A
  3916. 3378(*/)S
  3917. 1890 V
  3918. (25301)210 648 A
  3919. 1026({)S
  3920. 1980 V
  3921. (25302)210 648 A
  3922. 1026(/*)S
  3923. (Convert)294 1152 A
  3924. (the)126 1488 A
  3925. (block)210 1656 A
  3926. (special)294 1908 A
  3927. (file)168 2244 A
  3928. ('path')252 2454 A
  3929. 2748(to)S
  3930. 2874(a)S
  3931. (device)252 2958 A
  3932. (number.)294 3252 A
  3933. 3630(If)S
  3934. ('path')252 3756 A
  3935. 2070 V
  3936. (25303)210 648 A
  3937. 1068(*)S
  3938. 1152(is)S
  3939. (not)126 1278 A
  3940. 1446(a)S
  3941. (block)210 1530 A
  3942. (special)294 1782 A
  3943. (file,)210 2118 A
  3944. (return)252 2370 A
  3945. (error)210 2664 A
  3946. (code)168 2916 A
  3947. 3126(in)S
  3948. ('err_code'.)462 3252 A
  3949. 2160 V
  3950. (25304)210 648 A
  3951. 1068(*/)S
  3952. 2250 V
  3953. (25305)210 648 A
  3954. 2340 V
  3955. (25306)210 648 A
  3956. (register)336 1110 A
  3957. (struct)252 1488 A
  3958. (inode)210 1782 A
  3959. (*rip;)210 2034 A
  3960. 2430 V
  3961. (25307)210 648 A
  3962. (register)336 1110 A
  3963. (dev_t)210 1488 A
  3964. (dev;)168 1740 A
  3965. 2520 V
  3966. (25308)210 648 A
  3967. 2610 V
  3968. (25309)210 648 A
  3969. 1110(/*)S
  3970. 1236(If)S
  3971. ('path')252 1362 A
  3972. (can't)210 1656 A
  3973. 1908(be)S
  3974. (opened,)294 2034 A
  3975. (give)168 2370 A
  3976. 2580(up)S
  3977. (immediately.)504 2706 A
  3978. 3252(*/)S
  3979. 2700 V
  3980. (25310)210 648 A
  3981. 1110(if)S
  3982. 1236(()S
  3983. ((rip)168 1320 A
  3984. 1530(=)S
  3985. (eat_path(path)))630 1614 A
  3986. 2286(==)S
  3987. (NIL_INODE))420 2412 A
  3988. (return(NO_DEV);)630 2874 A
  3989. 2790 V
  3990. (25311)210 648 A
  3991. 2880 V
  3992. (25312)210 648 A
  3993. 1110(/*)S
  3994. 1236(If)S
  3995. ('path')252 1362 A
  3996. 1656(is)S
  3997. (not)126 1782 A
  3998. 1950(a)S
  3999. (block)210 2034 A
  4000. (special)294 2286 A
  4001. (file,)210 2622 A
  4002. (return)252 2874 A
  4003. (error.)252 3168 A
  4004. 3462(*/)S
  4005. 2970 V
  4006. (25313)210 648 A
  4007. 1110(if)S
  4008. 1236(()S
  4009. ((rip->i_mode)504 1320 A
  4010. 1866(&)S
  4011. (I_TYPE))294 1950 A
  4012. 2286(!=)S
  4013. (I_BLOCK_SPECIAL))672 2412 A
  4014. 3126({)S
  4015. 3060 V
  4016. (25314)210 648 A
  4017. (err_code)336 1362 A
  4018. 1740(=)S
  4019. (ENOTBLK;)336 1824 A
  4020. 3150 V
  4021. (25315)210 648 A
  4022. (put_inode(rip);)630 1362 A
  4023. 3240 V
  4024. (25316)210 648 A
  4025. (return(NO_DEV);)630 1362 A
  4026. 3330 V
  4027. (25317)210 648 A
  4028. 1110(})S
  4029. 3420 V
  4030. (25318)210 648 A
  4031. 3510 V
  4032. (25319)210 648 A
  4033. 1110(/*)S
  4034. (Extract)294 1236 A
  4035. (the)126 1572 A
  4036. (device)252 1740 A
  4037. (number.)294 2034 A
  4038. 2370(*/)S
  4039. 3600 V
  4040. (25320)210 648 A
  4041. (dev)126 1110 A
  4042. 1278(=)S
  4043. ((dev_t))294 1362 A
  4044. (rip->i_zone[0];)630 1698 A
  4045. 3690 V
  4046. (25321)210 648 A
  4047. (put_inode(rip);)630 1110 A
  4048. 3780 V
  4049. (25322)210 648 A
  4050. (return(dev);)504 1110 A
  4051. 3870 V
  4052. (25323)210 648 A
  4053. 1026(})S
  4054. 4140 V
  4055. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  4056. 4230 V
  4057. (src/fs/link.c)546 2034 A
  4058. 4320 V
  4059. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  4060. 4500 V
  4061. (25400)210 648 A
  4062. 1026(/*)S
  4063. (This)168 1152 A
  4064. (file)168 1362 A
  4065. (handles)294 1572 A
  4066. (the)126 1908 A
  4067. (LINK)168 2076 A
  4068. (and)126 2286 A
  4069. (UNLINK)252 2454 A
  4070. (system)252 2748 A
  4071. (calls.)252 3042 A
  4072. 3378(It)S
  4073. (also)168 3504 A
  4074. (deals)210 3714 A
  4075. (with)168 3966 A
  4076. 4590 V
  4077. (25401)210 648 A
  4078. 1068(*)S
  4079. (deallocating)504 1152 A
  4080. (the)126 1698 A
  4081. (storage)294 1866 A
  4082. (used)168 2202 A
  4083. 2412(by)S
  4084. 2538(a)S
  4085. (file)168 2622 A
  4086. (when)168 2832 A
  4087. (the)126 3042 A
  4088. (last)168 3210 A
  4089. (UNLINK)252 3420 A
  4090. 3714(is)S
  4091. (done)168 3840 A
  4092. 4050(to)S
  4093. 4176(a)S
  4094. 4680 V
  4095. (25402)210 648 A
  4096. 1068(*)S
  4097. (file)168 1152 A
  4098. (and)126 1362 A
  4099. (the)126 1530 A
  4100. (blocks)252 1698 A
  4101. (must)168 1992 A
  4102. 2202(be)S
  4103. (returned)336 2328 A
  4104. 2706(to)S
  4105. (the)126 2832 A
  4106. (free)168 3000 A
  4107. (block)210 3210 A
  4108. (pool.)210 3462 A
  4109. 4770 V
  4110. (25403)210 648 A
  4111. 1068(*)S
  4112. 4860 V
  4113. (25404)210 648 A
  4114. 1068(*)S
  4115. (The)126 1152 A
  4116. (entry)210 1320 A
  4117. (points)252 1572 A
  4118. (into)168 1866 A
  4119. (this)168 2076 A
  4120. (file)168 2286 A
  4121. (are)126 2496 A
  4122. 4950 V
  4123. (25405)210 648 A
  4124. 1068(*)S
  4125. (do_link:)336 1236 A
  4126. (perform)294 1698 A
  4127. (the)126 2034 A
  4128. (LINK)168 2202 A
  4129. (system)252 2412 A
  4130. (call)168 2706 A
  4131. 5040 V
  4132. (25406)210 648 A
  4133. 1068(*)S
  4134. (do_unlink:)420 1236 A
  4135. (perform)294 1698 A
  4136. (the)126 2034 A
  4137. (UNLINK)252 2202 A
  4138. (and)126 2496 A
  4139. (RMDIR)210 2664 A
  4140. (system)252 2916 A
  4141. (calls)210 3210 A
  4142. 5130 V
  4143. (25407)210 648 A
  4144. 1068(*)S
  4145. (do_rename:)420 1236 A
  4146. (perform)294 1698 A
  4147. (the)126 2034 A
  4148. (RENAME)252 2202 A
  4149. (system)252 2496 A
  4150. (call)168 2790 A
  4151. 5220 V
  4152. (25408)210 648 A
  4153. 1068(*)S
  4154. (truncate:)378 1236 A
  4155. (release)294 1698 A
  4156. (all)126 2034 A
  4157. (the)126 2202 A
  4158. (blocks)252 2370 A
  4159. (associated)420 2664 A
  4160. (with)168 3126 A
  4161. 3336(an)S
  4162. (inode)210 3462 A
  4163. 5310 V
  4164. (25409)210 648 A
  4165. 1068(*/)S
  4166. 5400 V
  4167. (25410)210 648 A
  4168. 5490 V
  4169. (25411)210 648 A
  4170. (#include)336 1026 A
  4171. ("fs.h")252 1404 A
  4172. 5580 V
  4173. (25412)210 648 A
  4174. (#include)336 1026 A
  4175. (<sys/stat.h>)504 1404 A
  4176. 5670 V
  4177. (25413)210 648 A
  4178. (#include)336 1026 A
  4179. (<string.h>)420 1404 A
  4180. 5760 V
  4181. (25414)210 648 A
  4182. (#include)336 1026 A
  4183. (<minix/callnr.h>)672 1404 A
  4184. 5850 V
  4185. (25415)210 648 A
  4186. (#include)336 1026 A
  4187. ("buf.h")294 1404 A
  4188. 5940 V
  4189. (25416)210 648 A
  4190. (#include)336 1026 A
  4191. ("file.h")336 1404 A
  4192. 6030 V
  4193. (25417)210 648 A
  4194. (#include)336 1026 A
  4195. ("fproc.h")378 1404 A
  4196. 6120 V
  4197. (25418)210 648 A
  4198. (#include)336 1026 A
  4199. ("inode.h")378 1404 A
  4200. 6210 V
  4201. (25419)210 648 A
  4202. (#include)336 1026 A
  4203. ("param.h")378 1404 A
  4204. 8418 V
  4205. EP
  4206. %%Page: 350 350
  4207. BP
  4208. /slant 0 def
  4209. /height 0 def
  4210. 630 V
  4211. 12 B
  4212. (350)180 648 A
  4213. 11 R
  4214. 2160(File:)S
  4215. (src/fs/link.c)522 2393 A
  4216. 10 R
  4217. 3402(MINIX)S
  4218. 3730(SOURCE)S
  4219. 4153(CODE)S
  4220. 900 V
  4221. 7 LST
  4222. (25420)210 648 A
  4223. (#include)336 1026 A
  4224. ("super.h")378 1404 A
  4225. 990 V
  4226. (25421)210 648 A
  4227. 1080 V
  4228. (25422)210 648 A
  4229. (#define)294 1026 A
  4230. (SAME)168 1362 A
  4231. (1000)168 1572 A
  4232. 1170 V
  4233. (25423)210 648 A
  4234. 1260 V
  4235. (25424)210 648 A
  4236. (FORWARD)294 1026 A
  4237. (_PROTOTYPE()462 1362 A
  4238. (int)126 1866 A
  4239. (remove_dir,)462 2034 A
  4240. ((struct)294 2538 A
  4241. (inode)210 2874 A
  4242. (*rldirp,)336 3126 A
  4243. (struct)252 3504 A
  4244. (inode)210 3798 A
  4245. (*rip,)210 4050 A
  4246. 1350 V
  4247. (25425)210 648 A
  4248. (char)168 2034 A
  4249. (dir_name[NAME_MAX]))798 2244 A
  4250. 4050();)S
  4251. 1440 V
  4252. (25426)210 648 A
  4253. 1530 V
  4254. (25427)210 648 A
  4255. (FORWARD)294 1026 A
  4256. (_PROTOTYPE()462 1362 A
  4257. (int)126 1866 A
  4258. (unlink_file,)504 2034 A
  4259. ((struct)294 2580 A
  4260. (inode)210 2916 A
  4261. (*dirp,)252 3168 A
  4262. (struct)252 3462 A
  4263. (inode)210 3756 A
  4264. (*rip,)210 4008 A
  4265. 1620 V
  4266. (25428)210 648 A
  4267. (char)168 2034 A
  4268. (file_name[NAME_MAX]))840 2244 A
  4269. 4050();)S
  4270. 1710 V
  4271. (25429)210 648 A
  4272. 1800 V
  4273. (25430)210 648 A
  4274. 1890 V
  4275. (25431)210 648 A
  4276. (/*===========================================================================*)3276 1026 A
  4277. 1980 V
  4278. (25432)210 648 A
  4279. 1068(*)S
  4280. (do_link)294 2370 A
  4281. 4260(*)S
  4282. 2070 V
  4283. (25433)210 648 A
  4284. (*===========================================================================*/)3276 1068 A
  4285. 2160 V
  4286. (25434)210 648 A
  4287. (PUBLIC)252 1026 A
  4288. (int)126 1320 A
  4289. (do_link())378 1488 A
  4290. 2250 V
  4291. (25435)210 648 A
  4292. 1026({)S
  4293. 2340 V
  4294. (25436)210 648 A
  4295. 1026(/*)S
  4296. (Perform)294 1152 A
  4297. (the)126 1488 A
  4298. (link(name1,)462 1656 A
  4299. (name2))252 2160 A
  4300. (system)252 2454 A
  4301. (call.)210 2748 A
  4302. 3000(*/)S
  4303. 2430 V
  4304. (25437)210 648 A
  4305. 2520 V
  4306. (25438)210 648 A
  4307. (register)336 1110 A
  4308. (struct)252 1488 A
  4309. (inode)210 1782 A
  4310. (*ip,)168 2034 A
  4311. (*rip;)210 2244 A
  4312. 2610 V
  4313. (25439)210 648 A
  4314. (register)336 1110 A
  4315. (int)126 1488 A
  4316. 1656(r;)S
  4317. 2700 V
  4318. (25440)210 648 A
  4319. (char)168 1110 A
  4320. (string[NAME_MAX];)714 1320 A
  4321. 2790 V
  4322. (25441)210 648 A
  4323. (struct)252 1110 A
  4324. (inode)210 1404 A
  4325. (*new_ip;)336 1656 A
  4326. 2880 V
  4327. (25442)210 648 A
  4328. 2970 V
  4329. (25443)210 648 A
  4330. 1110(/*)S
  4331. (See)126 1236 A
  4332. 1404(if)S
  4333. ('name')252 1530 A
  4334. ((file)210 1824 A
  4335. 2076(to)S
  4336. 2202(be)S
  4337. (linked))294 2328 A
  4338. (exists.)294 2664 A
  4339. 3000(*/)S
  4340. 3060 V
  4341. (25444)210 648 A
  4342. 1110(if)S
  4343. ((fetch_name(name1,)756 1236 A
  4344. (name1_length,)546 2034 A
  4345. (M1))126 2622 A
  4346. 2790(!=)S
  4347. (OK))126 2916 A
  4348. (return(err_code);)714 3084 A
  4349. 3150 V
  4350. (25445)210 648 A
  4351. 1110(if)S
  4352. 1236(()S
  4353. ((rip)168 1320 A
  4354. 1530(=)S
  4355. (eat_path(user_path)))840 1614 A
  4356. 2496(==)S
  4357. (NIL_INODE))420 2622 A
  4358. (return(err_code);)714 3084 A
  4359. 3240 V
  4360. (25446)210 648 A
  4361. 3330 V
  4362. (25447)210 648 A
  4363. 1110(/*)S
  4364. (Check)210 1236 A
  4365. 1488(to)S
  4366. (see)126 1614 A
  4367. 1782(if)S
  4368. (the)126 1908 A
  4369. (file)168 2076 A
  4370. (has)126 2286 A
  4371. (maximum)294 2454 A
  4372. (number)252 2790 A
  4373. 3084(of)S
  4374. (links)210 3210 A
  4375. (already.)336 3462 A
  4376. 3840(*/)S
  4377. 3420 V
  4378. (25448)210 648 A
  4379. 1110(r)S
  4380. 1194(=)S
  4381. (OK;)126 1278 A
  4382. 3510 V
  4383. (25449)210 648 A
  4384. 1110(if)S
  4385. 1236(()S
  4386. ((rip->i_nlinks)588 1320 A
  4387. 1950(&)S
  4388. (BYTE))210 2034 A
  4389. 2286(>=)S
  4390. (LINK_MAX))378 2412 A
  4391. 2832(r)S
  4392. 2916(=)S
  4393. (EMLINK;)294 3000 A
  4394. 3600 V
  4395. (25450)210 648 A
  4396. 3690 V
  4397. (25451)210 648 A
  4398. 1110(/*)S
  4399. (Only)168 1236 A
  4400. (super_user)420 1446 A
  4401. (may)126 1908 A
  4402. (link)168 2076 A
  4403. 2286(to)S
  4404. (directories.)504 2412 A
  4405. 2958(*/)S
  4406. 3780 V
  4407. (25452)210 648 A
  4408. 1110(if)S
  4409. 1236((r)S
  4410. 1362(==)S
  4411. (OK))126 1488 A
  4412. 3870 V
  4413. (25453)210 648 A
  4414. 1362(if)S
  4415. 1488(()S
  4416. ((rip->i_mode)504 1572 A
  4417. 2118(&)S
  4418. (I_TYPE))294 2202 A
  4419. 2538(==)S
  4420. (I_DIRECTORY)462 2664 A
  4421. 3168(&&)S
  4422. (!super_user))504 3294 A
  4423. 3840(r)S
  4424. 3924(=)S
  4425. (EPERM;)252 4008 A
  4426. 3960 V
  4427. (25454)210 648 A
  4428. 4050 V
  4429. (25455)210 648 A
  4430. 1110(/*)S
  4431. 1236(If)S
  4432. (error)210 1362 A
  4433. (with)168 1614 A
  4434. ('name',)294 1824 A
  4435. (return)252 2160 A
  4436. (the)126 2454 A
  4437. (inode.)252 2622 A
  4438. 2916(*/)S
  4439. 4140 V
  4440. (25456)210 648 A
  4441. 1110(if)S
  4442. 1236((r)S
  4443. 1362(!=)S
  4444. (OK))126 1488 A
  4445. 1656({)S
  4446. 4230 V
  4447. (25457)210 648 A
  4448. (put_inode(rip);)630 1362 A
  4449. 4320 V
  4450. (25458)210 648 A
  4451. (return(r);)420 1362 A
  4452. 4410 V
  4453. (25459)210 648 A
  4454. 1110(})S
  4455. 4500 V
  4456. (25460)210 648 A
  4457. 4590 V
  4458. (25461)210 648 A
  4459. 1110(/*)S
  4460. (Does)168 1236 A
  4461. (the)126 1446 A
  4462. (final)210 1614 A
  4463. (directory)378 1866 A
  4464. 2286(of)S
  4465. ('name2')294 2412 A
  4466. (exist?)252 2748 A
  4467. 3042(*/)S
  4468. 4680 V
  4469. (25462)210 648 A
  4470. 1110(if)S
  4471. ((fetch_name(name2,)756 1236 A
  4472. (name2_length,)546 2034 A
  4473. (M1))126 2622 A
  4474. 2790(!=)S
  4475. (OK))126 2916 A
  4476. 3084({)S
  4477. 4770 V
  4478. (25463)210 648 A
  4479. (put_inode(rip);)630 1362 A
  4480. 4860 V
  4481. (25464)210 648 A
  4482. (return(err_code);)714 1362 A
  4483. 4950 V
  4484. (25465)210 648 A
  4485. 1110(})S
  4486. 5040 V
  4487. (25466)210 648 A
  4488. 1110(if)S
  4489. 1236(()S
  4490. ((ip)126 1320 A
  4491. 1488(=)S
  4492. (last_dir(user_path,)798 1572 A
  4493. (string)))336 2412 A
  4494. 2790(==)S
  4495. (NIL_INODE))420 2916 A
  4496. 3378(r)S
  4497. 3462(=)S
  4498. (err_code;)378 3546 A
  4499. 5130 V
  4500. (25467)210 648 A
  4501. 5220 V
  4502. (25468)210 648 A
  4503. 1110(/*)S
  4504. 1236(If)S
  4505. ('name2')294 1362 A
  4506. (exists)252 1698 A
  4507. 1992(in)S
  4508. (full)168 2118 A
  4509. ((even)210 2328 A
  4510. 2580(if)S
  4511. 2706(no)S
  4512. (space))252 2832 A
  4513. (set)126 3126 A
  4514. ('r')126 3294 A
  4515. 3462(to)S
  4516. (error.)252 3588 A
  4517. 3882(*/)S
  4518. 5310 V
  4519. (25469)210 648 A
  4520. 1110(if)S
  4521. 1236((r)S
  4522. 1362(==)S
  4523. (OK))126 1488 A
  4524. 1656({)S
  4525. 5400 V
  4526. (25470)210 648 A
  4527. 1362(if)S
  4528. 1488(()S
  4529. ((new_ip)294 1572 A
  4530. 1908(=)S
  4531. (advance(ip,)462 1992 A
  4532. (string)))336 2496 A
  4533. 2874(==)S
  4534. (NIL_INODE))420 3000 A
  4535. 3462({)S
  4536. 5490 V
  4537. (25471)210 648 A
  4538. 1698(r)S
  4539. 1782(=)S
  4540. (err_code;)378 1866 A
  4541. 5580 V
  4542. (25472)210 648 A
  4543. 1698(if)S
  4544. 1824((r)S
  4545. 1950(==)S
  4546. (ENOENT))294 2076 A
  4547. 2412(r)S
  4548. 2496(=)S
  4549. (OK;)126 2580 A
  4550. 5670 V
  4551. (25473)210 648 A
  4552. 1362(})S
  4553. (else)168 1446 A
  4554. 1656({)S
  4555. 5760 V
  4556. (25474)210 648 A
  4557. (put_inode(new_ip);)756 1698 A
  4558. 5850 V
  4559. (25475)210 648 A
  4560. 1698(r)S
  4561. 1782(=)S
  4562. (EEXIST;)294 1866 A
  4563. 5940 V
  4564. (25476)210 648 A
  4565. 1362(})S
  4566. 6030 V
  4567. (25477)210 648 A
  4568. 1110(})S
  4569. 6120 V
  4570. (25478)210 648 A
  4571. 6210 V
  4572. (25479)210 648 A
  4573. 1110(/*)S
  4574. (Check)210 1236 A
  4575. (for)126 1488 A
  4576. (links)210 1656 A
  4577. (across)252 1908 A
  4578. (devices.)336 2202 A
  4579. 2580(*/)S
  4580. 8418 V
  4581. EP
  4582. %%Page: 351 351
  4583. BP
  4584. /slant 0 def
  4585. /height 0 def
  4586. 630 V
  4587. 10 R
  4588. 648(MINIX)S
  4589. 976(SOURCE)S
  4590. 1399(CODE)S
  4591. 11 R
  4592. 2160(File:)S
  4593. (src/fs/link.c)522 2393 A
  4594. 12 B
  4595. (351)180 4248 A
  4596. 900 V
  4597. 7 LST
  4598. (25480)210 648 A
  4599. 1110(if)S
  4600. 1236((r)S
  4601. 1362(==)S
  4602. (OK))126 1488 A
  4603. 990 V
  4604. (25481)210 648 A
  4605. 1362(if)S
  4606. ((rip->i_dev)462 1488 A
  4607. 1992(!=)S
  4608. (ip->i_dev))420 2118 A
  4609. 2580(r)S
  4610. 2664(=)S
  4611. (EXDEV;)252 2748 A
  4612. 1080 V
  4613. (25482)210 648 A
  4614. 1170 V
  4615. (25483)210 648 A
  4616. 1110(/*)S
  4617. (Try)126 1236 A
  4618. 1404(to)S
  4619. (link.)210 1530 A
  4620. 1782(*/)S
  4621. 1260 V
  4622. (25484)210 648 A
  4623. 1110(if)S
  4624. 1236((r)S
  4625. 1362(==)S
  4626. (OK))126 1488 A
  4627. 1350 V
  4628. (25485)210 648 A
  4629. 1362(r)S
  4630. 1446(=)S
  4631. (search_dir(ip,)588 1530 A
  4632. (string,)294 2160 A
  4633. (&rip->i_num,)504 2496 A
  4634. (ENTER);)294 3042 A
  4635. 1440 V
  4636. (25486)210 648 A
  4637. 1530 V
  4638. (25487)210 648 A
  4639. 1110(/*)S
  4640. 1236(If)S
  4641. (success,)336 1362 A
  4642. (register)336 1740 A
  4643. (the)126 2118 A
  4644. (linking.)336 2286 A
  4645. 2664(*/)S
  4646. 1620 V
  4647. (25488)210 648 A
  4648. 1110(if)S
  4649. 1236((r)S
  4650. 1362(==)S
  4651. (OK))126 1488 A
  4652. 1656({)S
  4653. 1710 V
  4654. (25489)210 648 A
  4655. (rip->i_nlinks++;)672 1362 A
  4656. 1800 V
  4657. (25490)210 648 A
  4658. (rip->i_update)546 1362 A
  4659. 1950(|=)S
  4660. (CTIME;)252 2076 A
  4661. 1890 V
  4662. (25491)210 648 A
  4663. (rip->i_dirt)462 1362 A
  4664. 1866(=)S
  4665. (DIRTY;)252 1950 A
  4666. 1980 V
  4667. (25492)210 648 A
  4668. 1110(})S
  4669. 2070 V
  4670. (25493)210 648 A
  4671. 2160 V
  4672. (25494)210 648 A
  4673. 1110(/*)S
  4674. (Done.)210 1236 A
  4675. (Release)294 1530 A
  4676. (both)168 1866 A
  4677. (inodes.)294 2076 A
  4678. 2412(*/)S
  4679. 2250 V
  4680. (25495)210 648 A
  4681. (put_inode(rip);)630 1110 A
  4682. 2340 V
  4683. (25496)210 648 A
  4684. (put_inode(ip);)588 1110 A
  4685. 2430 V
  4686. (25497)210 648 A
  4687. (return(r);)420 1110 A
  4688. 2520 V
  4689. (25498)210 648 A
  4690. 1026(})S
  4691. 2790 V
  4692. (25501)210 648 A
  4693. (/*===========================================================================*)3276 1026 A
  4694. 2880 V
  4695. (25502)210 648 A
  4696. 1068(*)S
  4697. (do_unlink)378 2370 A
  4698. 4260(*)S
  4699. 2970 V
  4700. (25503)210 648 A
  4701. (*===========================================================================*/)3276 1068 A
  4702. 3060 V
  4703. (25504)210 648 A
  4704. (PUBLIC)252 1026 A
  4705. (int)126 1320 A
  4706. (do_unlink())462 1488 A
  4707. 3150 V
  4708. (25505)210 648 A
  4709. 1026({)S
  4710. 3240 V
  4711. (25506)210 648 A
  4712. 1026(/*)S
  4713. (Perform)294 1152 A
  4714. (the)126 1488 A
  4715. (unlink(name))504 1656 A
  4716. 2202(or)S
  4717. (rmdir(name))462 2328 A
  4718. (system)252 2832 A
  4719. (call.)210 3126 A
  4720. (The)126 3378 A
  4721. (code)168 3546 A
  4722. (for)126 3756 A
  4723. (these)210 3924 A
  4724. (two)126 4176 A
  4725. 3330 V
  4726. (25507)210 648 A
  4727. 1068(*)S
  4728. 1152(is)S
  4729. (almost)252 1278 A
  4730. (the)126 1572 A
  4731. (same.)210 1740 A
  4732. (They)168 2034 A
  4733. (differ)252 2244 A
  4734. (only)168 2538 A
  4735. 2748(in)S
  4736. (some)168 2874 A
  4737. (condition)378 3084 A
  4738. (testing.)336 3504 A
  4739. (Unlink())336 3924 A
  4740. 3420 V
  4741. (25508)210 648 A
  4742. 1068(*)S
  4743. (may)126 1152 A
  4744. 1320(be)S
  4745. (used)168 1446 A
  4746. 1656(by)S
  4747. (the)126 1782 A
  4748. (superuser)378 1950 A
  4749. 2370(to)S
  4750. 2496(do)S
  4751. (dangerous)378 2622 A
  4752. (things;)294 3042 A
  4753. (rmdir())294 3378 A
  4754. (may)126 3714 A
  4755. (not.)168 3882 A
  4756. 3510 V
  4757. (25509)210 648 A
  4758. 1068(*/)S
  4759. 3600 V
  4760. (25510)210 648 A
  4761. 3690 V
  4762. (25511)210 648 A
  4763. (register)336 1110 A
  4764. (struct)252 1488 A
  4765. (inode)210 1782 A
  4766. (*rip;)210 2034 A
  4767. 3780 V
  4768. (25512)210 648 A
  4769. (struct)252 1110 A
  4770. (inode)210 1404 A
  4771. (*rldirp;)336 1656 A
  4772. 3870 V
  4773. (25513)210 648 A
  4774. (int)126 1110 A
  4775. 1278(r;)S
  4776. 3960 V
  4777. (25514)210 648 A
  4778. (char)168 1110 A
  4779. (string[NAME_MAX];)714 1320 A
  4780. 4050 V
  4781. (25515)210 648 A
  4782. 4140 V
  4783. (25516)210 648 A
  4784. 1110(/*)S
  4785. (Get)126 1236 A
  4786. (the)126 1404 A
  4787. (last)168 1572 A
  4788. (directory)378 1782 A
  4789. 2202(in)S
  4790. (the)126 2328 A
  4791. (path.)210 2496 A
  4792. 2748(*/)S
  4793. 4230 V
  4794. (25517)210 648 A
  4795. 1110(if)S
  4796. ((fetch_name(name,)714 1236 A
  4797. (name_length,)504 1992 A
  4798. (M3))126 2538 A
  4799. 2706(!=)S
  4800. (OK))126 2832 A
  4801. (return(err_code);)714 3000 A
  4802. 4320 V
  4803. (25518)210 648 A
  4804. 1110(if)S
  4805. 1236(()S
  4806. ((rldirp)294 1320 A
  4807. 1656(=)S
  4808. (last_dir(user_path,)798 1740 A
  4809. (string)))336 2580 A
  4810. 2958(==)S
  4811. (NIL_INODE))420 3084 A
  4812. 4410 V
  4813. (25519)210 648 A
  4814. (return(err_code);)714 1362 A
  4815. 4500 V
  4816. (25520)210 648 A
  4817. 4590 V
  4818. (25521)210 648 A
  4819. 1110(/*)S
  4820. (The)126 1236 A
  4821. (last)168 1404 A
  4822. (directory)378 1614 A
  4823. (exists.)294 2034 A
  4824. (Does)168 2412 A
  4825. (the)126 2622 A
  4826. (file)168 2790 A
  4827. (also)168 3000 A
  4828. (exist?)252 3210 A
  4829. 3504(*/)S
  4830. 4680 V
  4831. (25522)210 648 A
  4832. 1110(r)S
  4833. 1194(=)S
  4834. (OK;)126 1278 A
  4835. 4770 V
  4836. (25523)210 648 A
  4837. 1110(if)S
  4838. 1236(()S
  4839. ((rip)168 1320 A
  4840. 1530(=)S
  4841. (advance(rldirp,)630 1614 A
  4842. (string)))336 2286 A
  4843. 2664(==)S
  4844. (NIL_INODE))420 2790 A
  4845. 3252(r)S
  4846. 3336(=)S
  4847. (err_code;)378 3420 A
  4848. 4860 V
  4849. (25524)210 648 A
  4850. 4950 V
  4851. (25525)210 648 A
  4852. 1110(/*)S
  4853. 1236(If)S
  4854. (error,)252 1362 A
  4855. (return)252 1656 A
  4856. (inode.)252 1950 A
  4857. 2244(*/)S
  4858. 5040 V
  4859. (25526)210 648 A
  4860. 1110(if)S
  4861. 1236((r)S
  4862. 1362(!=)S
  4863. (OK))126 1488 A
  4864. 1656({)S
  4865. 5130 V
  4866. (25527)210 648 A
  4867. (put_inode(rldirp);)756 1362 A
  4868. 5220 V
  4869. (25528)210 648 A
  4870. (return(r);)420 1362 A
  4871. 5310 V
  4872. (25529)210 648 A
  4873. 1110(})S
  4874. 5400 V
  4875. (25530)210 648 A
  4876. 5490 V
  4877. (25531)210 648 A
  4878. 1110(/*)S
  4879. 1236(Do)S
  4880. (not)126 1362 A
  4881. (remove)252 1530 A
  4882. 1824(a)S
  4883. (mount)210 1908 A
  4884. (point.)252 2160 A
  4885. 2454(*/)S
  4886. 5580 V
  4887. (25532)210 648 A
  4888. 1110(if)S
  4889. ((rip->i_num)462 1236 A
  4890. 1740(==)S
  4891. (ROOT_INODE))462 1866 A
  4892. 2370({)S
  4893. 5670 V
  4894. (25533)210 648 A
  4895. (put_inode(rldirp);)756 1362 A
  4896. 5760 V
  4897. (25534)210 648 A
  4898. (put_inode(rip);)630 1362 A
  4899. 5850 V
  4900. (25535)210 648 A
  4901. (return(EBUSY);)588 1362 A
  4902. 5940 V
  4903. (25536)210 648 A
  4904. 1110(})S
  4905. 6030 V
  4906. (25537)210 648 A
  4907. 6120 V
  4908. (25538)210 648 A
  4909. 1110(/*)S
  4910. (Now)126 1236 A
  4911. (test)168 1404 A
  4912. 1614(if)S
  4913. (the)126 1740 A
  4914. (call)168 1908 A
  4915. 2118(is)S
  4916. (allowed,)336 2244 A
  4917. (separately)420 2622 A
  4918. (for)126 3084 A
  4919. (unlink())336 3252 A
  4920. (and)126 3630 A
  4921. (rmdir().)336 3798 A
  4922. 4176(*/)S
  4923. 6210 V
  4924. (25539)210 648 A
  4925. 1110(if)S
  4926. ((fs_call)336 1236 A
  4927. 1614(==)S
  4928. (UNLINK))294 1740 A
  4929. 2076({)S
  4930. 8418 V
  4931. EP
  4932. %%Page: 352 352
  4933. BP
  4934. /slant 0 def
  4935. /height 0 def
  4936. 630 V
  4937. 12 B
  4938. (352)180 648 A
  4939. 11 R
  4940. 2160(File:)S
  4941. (src/fs/link.c)522 2393 A
  4942. 10 R
  4943. 3402(MINIX)S
  4944. 3730(SOURCE)S
  4945. 4153(CODE)S
  4946. 900 V
  4947. 7 LST
  4948. (25540)210 648 A
  4949. 1362(/*)S
  4950. (Only)168 1488 A
  4951. (the)126 1698 A
  4952. 1866(su)S
  4953. (may)126 1992 A
  4954. (unlink)252 2160 A
  4955. (directories,)504 2454 A
  4956. (but)126 3000 A
  4957. (the)126 3168 A
  4958. 3336(su)S
  4959. (can)126 3462 A
  4960. (unlink)252 3630 A
  4961. (any)126 3924 A
  4962. (dir.*/)252 4092 A
  4963. 990 V
  4964. (25541)210 648 A
  4965. 1362(if)S
  4966. 1488(()S
  4967. ((rip->i_mode)504 1572 A
  4968. 2118(&)S
  4969. (I_TYPE))294 2202 A
  4970. 2538(==)S
  4971. (I_DIRECTORY)462 2664 A
  4972. 3168(&&)S
  4973. (!super_user))504 3294 A
  4974. 3840(r)S
  4975. 3924(=)S
  4976. (EPERM;)252 4008 A
  4977. 1080 V
  4978. (25542)210 648 A
  4979. 1170 V
  4980. (25543)210 648 A
  4981. 1362(/*)S
  4982. (Don't)210 1488 A
  4983. (unlink)252 1740 A
  4984. 2034(a)S
  4985. (file)168 2118 A
  4986. 2328(if)S
  4987. 2454(it)S
  4988. 2580(is)S
  4989. (the)126 2706 A
  4990. (root)168 2874 A
  4991. 3084(of)S
  4992. 3210(a)S
  4993. (mounted)294 3294 A
  4994. (file)168 3630 A
  4995. (system.)294 3840 A
  4996. 4176(*/)S
  4997. 1260 V
  4998. (25544)210 648 A
  4999. 1362(if)S
  5000. ((rip->i_num)462 1488 A
  5001. 1992(==)S
  5002. (ROOT_INODE))462 2118 A
  5003. 2622(r)S
  5004. 2706(=)S
  5005. (EBUSY;)252 2790 A
  5006. 1350 V
  5007. (25545)210 648 A
  5008. 1440 V
  5009. (25546)210 648 A
  5010. 1362(/*)S
  5011. (Actually)336 1488 A
  5012. (try)126 1866 A
  5013. 2034(to)S
  5014. (unlink)252 2160 A
  5015. (the)126 2454 A
  5016. (file;)210 2622 A
  5017. (fails)210 2874 A
  5018. 3126(if)S
  5019. (parent)252 3252 A
  5020. 3546(is)S
  5021. (mode)168 3672 A
  5022. 3882(0)S
  5023. (etc.)168 3966 A
  5024. 4176(*/)S
  5025. 1530 V
  5026. (25547)210 648 A
  5027. 1362(if)S
  5028. 1488((r)S
  5029. 1614(==)S
  5030. (OK))126 1740 A
  5031. 1908(r)S
  5032. 1992(=)S
  5033. (unlink_file(rldirp,)798 2076 A
  5034. (rip,)168 2916 A
  5035. (string);)336 3126 A
  5036. 1620 V
  5037. (25548)210 648 A
  5038. 1710 V
  5039. (25549)210 648 A
  5040. 1110(})S
  5041. (else)168 1194 A
  5042. 1404({)S
  5043. 1800 V
  5044. (25550)210 648 A
  5045. 1362(r)S
  5046. 1446(=)S
  5047. (remove_dir(rldirp,)756 1530 A
  5048. (rip,)168 2328 A
  5049. (string);)336 2538 A
  5050. 2916(/*)S
  5051. (call)168 3042 A
  5052. 3252(is)S
  5053. (RMDIR)210 3378 A
  5054. 3630(*/)S
  5055. 1890 V
  5056. (25551)210 648 A
  5057. 1110(})S
  5058. 1980 V
  5059. (25552)210 648 A
  5060. 2070 V
  5061. (25553)210 648 A
  5062. 1110(/*)S
  5063. 1236(If)S
  5064. (unlink)252 1362 A
  5065. (was)126 1656 A
  5066. (possible,)378 1824 A
  5067. 2244(it)S
  5068. (has)126 2370 A
  5069. (been)168 2538 A
  5070. (done,)210 2748 A
  5071. (otherwise)378 3000 A
  5072. 3420(it)S
  5073. (has)126 3546 A
  5074. (not.)168 3714 A
  5075. 3924(*/)S
  5076. 2160 V
  5077. (25554)210 648 A
  5078. (put_inode(rip);)630 1110 A
  5079. 2250 V
  5080. (25555)210 648 A
  5081. (put_inode(rldirp);)756 1110 A
  5082. 2340 V
  5083. (25556)210 648 A
  5084. (return(r);)420 1110 A
  5085. 2430 V
  5086. (25557)210 648 A
  5087. 1026(})S
  5088. 2700 V
  5089. (25560)210 648 A
  5090. (/*===========================================================================*)3276 1026 A
  5091. 2790 V
  5092. (25561)210 648 A
  5093. 1068(*)S
  5094. (do_rename)378 2370 A
  5095. 4260(*)S
  5096. 2880 V
  5097. (25562)210 648 A
  5098. (*===========================================================================*/)3276 1068 A
  5099. 2970 V
  5100. (25563)210 648 A
  5101. (PUBLIC)252 1026 A
  5102. (int)126 1320 A
  5103. (do_rename())462 1488 A
  5104. 3060 V
  5105. (25564)210 648 A
  5106. 1026({)S
  5107. 3150 V
  5108. (25565)210 648 A
  5109. 1026(/*)S
  5110. (Perform)294 1152 A
  5111. (the)126 1488 A
  5112. (rename(name1,)546 1656 A
  5113. (name2))252 2244 A
  5114. (system)252 2538 A
  5115. (call.)210 2832 A
  5116. 3084(*/)S
  5117. 3240 V
  5118. (25566)210 648 A
  5119. 3330 V
  5120. (25567)210 648 A
  5121. (struct)252 1110 A
  5122. (inode)210 1404 A
  5123. (*old_dirp,)420 1656 A
  5124. (*old_ip;)336 2118 A
  5125. 2706(/*)S
  5126. (ptrs)168 2832 A
  5127. 3042(to)S
  5128. (old)126 3168 A
  5129. (dir,)168 3336 A
  5130. (file)168 3546 A
  5131. (inodes)252 3756 A
  5132. 4050(*/)S
  5133. 3420 V
  5134. (25568)210 648 A
  5135. (struct)252 1110 A
  5136. (inode)210 1404 A
  5137. (*new_dirp,)420 1656 A
  5138. (*new_ip;)336 2118 A
  5139. 2706(/*)S
  5140. (ptrs)168 2832 A
  5141. 3042(to)S
  5142. (new)126 3168 A
  5143. (dir,)168 3336 A
  5144. (file)168 3546 A
  5145. (inodes)252 3756 A
  5146. 4050(*/)S
  5147. 3510 V
  5148. (25569)210 648 A
  5149. (struct)252 1110 A
  5150. (inode)210 1404 A
  5151. (*new_superdirp,)630 1656 A
  5152. (*next_new_superdirp;)840 2328 A
  5153. 3600 V
  5154. (25570)210 648 A
  5155. (int)126 1110 A
  5156. 1278(r)S
  5157. 1362(=)S
  5158. (OK;)126 1446 A
  5159. 2706(/*)S
  5160. (error)210 2832 A
  5161. (flag;)210 3084 A
  5162. (initially)378 3336 A
  5163. 3756(no)S
  5164. (error)210 3882 A
  5165. 4134(*/)S
  5166. 3690 V
  5167. (25571)210 648 A
  5168. (int)126 1110 A
  5169. (odir,)210 1278 A
  5170. (ndir;)210 1530 A
  5171. 2706(/*)S
  5172. (TRUE)168 2832 A
  5173. (iff)126 3042 A
  5174. ({old|new})378 3210 A
  5175. (file)168 3630 A
  5176. 3840(is)S
  5177. (dir)126 3966 A
  5178. 4134(*/)S
  5179. 3780 V
  5180. (25572)210 648 A
  5181. (int)126 1110 A
  5182. (same_pdir;)420 1278 A
  5183. 2706(/*)S
  5184. (TRUE)168 2832 A
  5185. (iff)126 3042 A
  5186. (parent)252 3210 A
  5187. (dirs)168 3504 A
  5188. (are)126 3714 A
  5189. (the)126 3882 A
  5190. (same)168 4050 A
  5191. 4260(*/)S
  5192. 3870 V
  5193. (25573)210 648 A
  5194. (char)168 1110 A
  5195. (old_name[NAME_MAX],)798 1320 A
  5196. (new_name[NAME_MAX];)798 2160 A
  5197. 3960 V
  5198. (25574)210 648 A
  5199. (ino_t)210 1110 A
  5200. (numb;)210 1362 A
  5201. 4050 V
  5202. (25575)210 648 A
  5203. (int)126 1110 A
  5204. (r1;)126 1278 A
  5205. 4140 V
  5206. (25576)210 648 A
  5207. 4230 V
  5208. (25577)210 648 A
  5209. 1110(/*)S
  5210. (See)126 1236 A
  5211. 1404(if)S
  5212. ('name1')294 1530 A
  5213. ((existing)378 1866 A
  5214. (file))210 2286 A
  5215. (exists.)294 2538 A
  5216. (Get)126 2916 A
  5217. (dir)126 3084 A
  5218. (and)126 3252 A
  5219. (file)168 3420 A
  5220. (inodes.)294 3630 A
  5221. 3966(*/)S
  5222. 4320 V
  5223. (25578)210 648 A
  5224. 1110(if)S
  5225. ((fetch_name(name1,)756 1236 A
  5226. (name1_length,)546 2034 A
  5227. (M1))126 2622 A
  5228. 2790(!=)S
  5229. (OK))126 2916 A
  5230. (return(err_code);)714 3084 A
  5231. 4410 V
  5232. (25579)210 648 A
  5233. 1110(if)S
  5234. 1236(()S
  5235. ((old_dirp)378 1320 A
  5236. 1740(=)S
  5237. (last_dir(user_path,)798 1824 A
  5238. (old_name))==NIL_INODE))924 2664 A
  5239. (return(err_code);)714 3630 A
  5240. 4500 V
  5241. (25580)210 648 A
  5242. 4590 V
  5243. (25581)210 648 A
  5244. 1110(if)S
  5245. 1236(()S
  5246. ((old_ip)294 1320 A
  5247. 1656(=)S
  5248. (advance(old_dirp,)714 1740 A
  5249. (old_name)))420 2496 A
  5250. 2958(==)S
  5251. (NIL_INODE))420 3084 A
  5252. 3546(r)S
  5253. 3630(=)S
  5254. (err_code;)378 3714 A
  5255. 4680 V
  5256. (25582)210 648 A
  5257. 4770 V
  5258. (25583)210 648 A
  5259. 1110(/*)S
  5260. (See)126 1236 A
  5261. 1404(if)S
  5262. ('name2')294 1530 A
  5263. ((new)168 1866 A
  5264. (name))210 2076 A
  5265. (exists.)294 2328 A
  5266. (Get)126 2706 A
  5267. (dir)126 2874 A
  5268. (and)126 3042 A
  5269. (file)168 3210 A
  5270. (inodes.)294 3420 A
  5271. 3756(*/)S
  5272. 4860 V
  5273. (25584)210 648 A
  5274. 1110(if)S
  5275. ((fetch_name(name2,)756 1236 A
  5276. (name2_length,)546 2034 A
  5277. (M1))126 2622 A
  5278. 2790(!=)S
  5279. (OK))126 2916 A
  5280. 3084(r)S
  5281. 3168(=)S
  5282. (err_code;)378 3252 A
  5283. 4950 V
  5284. (25585)210 648 A
  5285. 1110(if)S
  5286. 1236(()S
  5287. ((new_dirp)378 1320 A
  5288. 1740(=)S
  5289. (last_dir(user_path,)798 1824 A
  5290. (new_name)))420 2664 A
  5291. 3126(==)S
  5292. (NIL_INODE))420 3252 A
  5293. 3714(r)S
  5294. 3798(=)S
  5295. (err_code;)378 3882 A
  5296. 5040 V
  5297. (25586)210 648 A
  5298. (new_ip)252 1110 A
  5299. 1404(=)S
  5300. (advance(new_dirp,)714 1488 A
  5301. (new_name);)420 2244 A
  5302. 2706(/*)S
  5303. (not)126 2832 A
  5304. (required)336 3000 A
  5305. 3378(to)S
  5306. (exist)210 3504 A
  5307. 3756(*/)S
  5308. 5130 V
  5309. (25587)210 648 A
  5310. 5220 V
  5311. (25588)210 648 A
  5312. 1110(if)S
  5313. ((old_ip)294 1236 A
  5314. 1572(!=)S
  5315. (NIL_INODE))420 1698 A
  5316. 5310 V
  5317. (25589)210 648 A
  5318. (odir)168 1362 A
  5319. 1572(=)S
  5320. (((old_ip->i_mode)672 1656 A
  5321. 2370(&)S
  5322. (I_TYPE))294 2454 A
  5323. 2790(==)S
  5324. (I_DIRECTORY);)546 2916 A
  5325. 3546(/*)S
  5326. (TRUE)168 3672 A
  5327. (iff)126 3882 A
  5328. (dir)126 4050 A
  5329. 4218(*/)S
  5330. 5400 V
  5331. (25590)210 648 A
  5332. 5490 V
  5333. (25591)210 648 A
  5334. 1110(/*)S
  5335. 1236(If)S
  5336. 1362(it)S
  5337. 1488(is)S
  5338. (ok,)126 1614 A
  5339. (check)210 1782 A
  5340. (for)126 2034 A
  5341. 2202(a)S
  5342. (variety)294 2286 A
  5343. 2622(of)S
  5344. (possible)336 2748 A
  5345. (errors.)294 3126 A
  5346. 3462(*/)S
  5347. 5580 V
  5348. (25592)210 648 A
  5349. 1110(if)S
  5350. 1236((r)S
  5351. 1362(==)S
  5352. (OK))126 1488 A
  5353. 1656({)S
  5354. 5670 V
  5355. (25593)210 648 A
  5356. (same_pdir)378 1362 A
  5357. 1782(=)S
  5358. ((old_dirp)378 1866 A
  5359. 2286(==)S
  5360. (new_dirp);)420 2412 A
  5361. 5760 V
  5362. (25594)210 648 A
  5363. 5850 V
  5364. (25595)210 648 A
  5365. 1362(/*)S
  5366. (The)126 1488 A
  5367. (old)126 1656 A
  5368. (inode)210 1824 A
  5369. (must)168 2076 A
  5370. (not)126 2286 A
  5371. 2454(be)S
  5372. 2580(a)S
  5373. (superdirectory)588 2664 A
  5374. 3294(of)S
  5375. (the)126 3420 A
  5376. (new)126 3588 A
  5377. (last)168 3756 A
  5378. (dir.)168 3966 A
  5379. 4176(*/)S
  5380. 5940 V
  5381. (25596)210 648 A
  5382. 1362(if)S
  5383. ((odir)210 1488 A
  5384. 1740(&&)S
  5385. (!same_pdir))462 1866 A
  5386. 2370({)S
  5387. 6030 V
  5388. (25597)210 648 A
  5389. (dup_inode(new_superdirp)966 1698 A
  5390. 2706(=)S
  5391. (new_dirp);)420 2790 A
  5392. 6120 V
  5393. (25598)210 648 A
  5394. (while)210 1698 A
  5395. ((TRUE))252 1950 A
  5396. 2244({)S
  5397. 2706(/*)S
  5398. (may)126 2832 A
  5399. (hang)168 3000 A
  5400. 3210(in)S
  5401. 3336(a)S
  5402. (file)168 3420 A
  5403. (system)252 3630 A
  5404. (loop)168 3924 A
  5405. 4134(*/)S
  5406. 6210 V
  5407. (25599)210 648 A
  5408. 2034(if)S
  5409. ((new_superdirp)588 2160 A
  5410. 2790(==)S
  5411. (old_ip))294 2916 A
  5412. 3252({)S
  5413. 8418 V
  5414. EP
  5415. %%Page: 353 353
  5416. BP
  5417. /slant 0 def
  5418. /height 0 def
  5419. 630 V
  5420. 10 R
  5421. 648(MINIX)S
  5422. 976(SOURCE)S
  5423. 1399(CODE)S
  5424. 11 R
  5425. 2160(File:)S
  5426. (src/fs/link.c)522 2393 A
  5427. 12 B
  5428. (353)180 4248 A
  5429. 900 V
  5430. 7 LST
  5431. (25600)210 648 A
  5432. 2370(r)S
  5433. 2454(=)S
  5434. (EINVAL;)294 2538 A
  5435. 990 V
  5436. (25601)210 648 A
  5437. (break;)252 2370 A
  5438. 1080 V
  5439. (25602)210 648 A
  5440. 2034(})S
  5441. 1170 V
  5442. (25603)210 648 A
  5443. (next_new_superdirp)756 2034 A
  5444. 2832(=)S
  5445. (advance(new_superdirp,)924 2916 A
  5446. (dot2);)252 3882 A
  5447. 1260 V
  5448. (25604)210 648 A
  5449. (put_inode(new_superdirp);)1050 2034 A
  5450. 1350 V
  5451. (25605)210 648 A
  5452. 2034(if)S
  5453. ((next_new_superdirp)798 2160 A
  5454. 3000(==)S
  5455. (new_superdirp))588 3126 A
  5456. 1440 V
  5457. (25606)210 648 A
  5458. (break;)252 2370 A
  5459. 2706(/*)S
  5460. (back)168 2832 A
  5461. 3042(at)S
  5462. (system)252 3168 A
  5463. (root)168 3462 A
  5464. (directory)378 3672 A
  5465. 4092(*/)S
  5466. 1530 V
  5467. (25607)210 648 A
  5468. (new_superdirp)546 2034 A
  5469. 2622(=)S
  5470. (next_new_superdirp;)798 2706 A
  5471. 1620 V
  5472. (25608)210 648 A
  5473. 2034(if)S
  5474. ((new_superdirp)588 2160 A
  5475. 2790(==)S
  5476. (NIL_INODE))420 2916 A
  5477. 3378({)S
  5478. 1710 V
  5479. (25609)210 648 A
  5480. 2370(/*)S
  5481. (Missing)294 2496 A
  5482. ("..")168 2832 A
  5483. (entry.)252 3042 A
  5484. (Assume)252 3378 A
  5485. (the)126 3672 A
  5486. (worst.)252 3840 A
  5487. 4134(*/)S
  5488. 1800 V
  5489. (25610)210 648 A
  5490. 2370(r)S
  5491. 2454(=)S
  5492. (EINVAL;)294 2538 A
  5493. 1890 V
  5494. (25611)210 648 A
  5495. (break;)252 2370 A
  5496. 1980 V
  5497. (25612)210 648 A
  5498. 2034(})S
  5499. 2070 V
  5500. (25613)210 648 A
  5501. 1698(})S
  5502. 2160 V
  5503. (25614)210 648 A
  5504. (put_inode(new_superdirp);)1050 1698 A
  5505. 2250 V
  5506. (25615)210 648 A
  5507. 1362(})S
  5508. 2340 V
  5509. (25616)210 648 A
  5510. 2430 V
  5511. (25617)210 648 A
  5512. 1362(/*)S
  5513. (The)126 1488 A
  5514. (old)126 1656 A
  5515. 1824(or)S
  5516. (new)126 1950 A
  5517. (name)168 2118 A
  5518. (must)168 2328 A
  5519. (not)126 2538 A
  5520. 2706(be)S
  5521. 2832(.)S
  5522. 2916(or)S
  5523. 3042(..)S
  5524. 3168(*/)S
  5525. 2520 V
  5526. (25618)210 648 A
  5527. 1362(if)S
  5528. ((strcmp(old_name,)714 1488 A
  5529. (".")==0)294 2244 A
  5530. 2580(||)S
  5531. (strcmp(old_name,)672 2706 A
  5532. ("..")==0)336 3420 A
  5533. 3798(||)S
  5534. 2610 V
  5535. (25619)210 648 A
  5536. (strcmp(new_name,)672 1530 A
  5537. (".")==0)294 2244 A
  5538. 2580(||)S
  5539. (strcmp(new_name,)672 2706 A
  5540. ("..")==0))378 3420 A
  5541. 3840(r)S
  5542. 3924(=)S
  5543. (EINVAL;)294 4008 A
  5544. 2700 V
  5545. (25620)210 648 A
  5546. 2790 V
  5547. (25621)210 648 A
  5548. 1362(/*)S
  5549. (Both)168 1488 A
  5550. (parent)252 1698 A
  5551. (directories)462 1992 A
  5552. (must)168 2496 A
  5553. 2706(be)S
  5554. 2832(on)S
  5555. (the)126 2958 A
  5556. (same)168 3126 A
  5557. (device.)294 3336 A
  5558. 3672(*/)S
  5559. 2880 V
  5560. (25622)210 648 A
  5561. 1362(if)S
  5562. ((old_dirp->i_dev)672 1488 A
  5563. 2202(!=)S
  5564. (new_dirp->i_dev))672 2328 A
  5565. 3042(r)S
  5566. 3126(=)S
  5567. (EXDEV;)252 3210 A
  5568. 2970 V
  5569. (25623)210 648 A
  5570. 3060 V
  5571. (25624)210 648 A
  5572. 1362(/*)S
  5573. (Parent)252 1488 A
  5574. (dirs)168 1782 A
  5575. (must)168 1992 A
  5576. 2202(be)S
  5577. (writable,)378 2328 A
  5578. (searchable)420 2748 A
  5579. (and)126 3210 A
  5580. 3378(on)S
  5581. 3504(a)S
  5582. (writable)336 3588 A
  5583. (device)252 3966 A
  5584. 4260(*/)S
  5585. 3150 V
  5586. (25625)210 648 A
  5587. 1362(if)S
  5588. (((r1)168 1488 A
  5589. 1698(=)S
  5590. (forbidden(old_dirp,)798 1782 A
  5591. (W_BIT)210 2622 A
  5592. 2874(|)S
  5593. (X_BIT)))294 2958 A
  5594. 3294(!=)S
  5595. 3420(OK)S
  5596. 3546(||)S
  5597. 3240 V
  5598. (25626)210 648 A
  5599. ((r1)126 1530 A
  5600. 1698(=)S
  5601. (forbidden(new_dirp,)798 1782 A
  5602. (W_BIT)210 2622 A
  5603. 2874(|)S
  5604. (X_BIT)))294 2958 A
  5605. 3294(!=)S
  5606. (OK))126 3420 A
  5607. 3588(r)S
  5608. 3672(=)S
  5609. (r1;)126 3756 A
  5610. 3330 V
  5611. (25627)210 648 A
  5612. 3420 V
  5613. (25628)210 648 A
  5614. 1362(/*)S
  5615. (Some)168 1488 A
  5616. (tests)210 1698 A
  5617. (apply)210 1950 A
  5618. (only)168 2202 A
  5619. 2412(if)S
  5620. (the)126 2538 A
  5621. (new)126 2706 A
  5622. (path)168 2874 A
  5623. (exists.)294 3084 A
  5624. 3420(*/)S
  5625. 3510 V
  5626. (25629)210 648 A
  5627. 1362(if)S
  5628. ((new_ip)294 1488 A
  5629. 1824(==)S
  5630. (NIL_INODE))420 1950 A
  5631. 2412({)S
  5632. 3600 V
  5633. (25630)210 648 A
  5634. 1698(/*)S
  5635. (don't)210 1824 A
  5636. (rename)252 2076 A
  5637. 2370(a)S
  5638. (file)168 2454 A
  5639. (with)168 2664 A
  5640. 2874(a)S
  5641. (file)168 2958 A
  5642. (system)252 3168 A
  5643. (mounted)294 3462 A
  5644. 3798(on)S
  5645. (it.)126 3924 A
  5646. 4092(*/)S
  5647. 3690 V
  5648. (25631)210 648 A
  5649. 1698(if)S
  5650. ((old_ip->i_dev)588 1824 A
  5651. 2454(!=)S
  5652. (old_dirp->i_dev))672 2580 A
  5653. 3294(r)S
  5654. 3378(=)S
  5655. (EXDEV;)252 3462 A
  5656. 3780 V
  5657. (25632)210 648 A
  5658. 1698(if)S
  5659. ((odir)210 1824 A
  5660. 2076(&&)S
  5661. ((new_dirp->i_nlinks)798 2202 A
  5662. 3042(&)S
  5663. (BYTE))210 3126 A
  5664. 3378(>=)S
  5665. (LINK_MAX)336 3504 A
  5666. 3882(&&)S
  5667. 3870 V
  5668. (25633)210 648 A
  5669. (!same_pdir)420 1866 A
  5670. 2328(&&)S
  5671. 2454(r)S
  5672. 2538(==)S
  5673. (OK))126 2664 A
  5674. 2832(r)S
  5675. 2916(=)S
  5676. (EMLINK;)294 3000 A
  5677. 3960 V
  5678. (25634)210 648 A
  5679. 1362(})S
  5680. (else)168 1446 A
  5681. 1656({)S
  5682. 4050 V
  5683. (25635)210 648 A
  5684. 1698(if)S
  5685. ((old_ip)294 1824 A
  5686. 2160(==)S
  5687. (new_ip))294 2286 A
  5688. 2622(r)S
  5689. 2706(=)S
  5690. (SAME;)210 2790 A
  5691. 3042(/*)S
  5692. (old=new)294 3168 A
  5693. 3504(*/)S
  5694. 4140 V
  5695. (25636)210 648 A
  5696. 4230 V
  5697. (25637)210 648 A
  5698. 1698(/*)S
  5699. (has)126 1824 A
  5700. (the)126 1992 A
  5701. (old)126 2160 A
  5702. (file)168 2328 A
  5703. 2538(or)S
  5704. (new)126 2664 A
  5705. (file)168 2832 A
  5706. 3042(a)S
  5707. (file)168 3126 A
  5708. (system)252 3336 A
  5709. (mounted)294 3630 A
  5710. 3966(on)S
  5711. (it?)126 4092 A
  5712. 4260(*/)S
  5713. 4320 V
  5714. (25638)210 648 A
  5715. 1698(if)S
  5716. ((old_ip->i_dev)588 1824 A
  5717. 2454(!=)S
  5718. (new_ip->i_dev))588 2580 A
  5719. 3210(r)S
  5720. 3294(=)S
  5721. (EXDEV;)252 3378 A
  5722. 4410 V
  5723. (25639)210 648 A
  5724. 4500 V
  5725. (25640)210 648 A
  5726. (ndir)168 1698 A
  5727. 1908(=)S
  5728. (((new_ip->i_mode)672 1992 A
  5729. 2706(&)S
  5730. (I_TYPE))294 2790 A
  5731. 3126(==)S
  5732. (I_DIRECTORY);)546 3252 A
  5733. 3840(/*)S
  5734. (dir)126 3966 A
  5735. 4134(?)S
  5736. 4218(*/)S
  5737. 4590 V
  5738. (25641)210 648 A
  5739. 1698(if)S
  5740. ((odir)210 1824 A
  5741. 2076(==)S
  5742. (TRUE)168 2202 A
  5743. 2412(&&)S
  5744. (ndir)168 2538 A
  5745. 2748(==)S
  5746. (FALSE))252 2874 A
  5747. 3168(r)S
  5748. 3252(=)S
  5749. (ENOTDIR;)336 3336 A
  5750. 4680 V
  5751. (25642)210 648 A
  5752. 1698(if)S
  5753. ((odir)210 1824 A
  5754. 2076(==)S
  5755. (FALSE)210 2202 A
  5756. 2454(&&)S
  5757. (ndir)168 2580 A
  5758. 2790(==)S
  5759. (TRUE))210 2916 A
  5760. 3168(r)S
  5761. 3252(=)S
  5762. (EISDIR;)294 3336 A
  5763. 4770 V
  5764. (25643)210 648 A
  5765. 1362(})S
  5766. 4860 V
  5767. (25644)210 648 A
  5768. 1110(})S
  5769. 4950 V
  5770. (25645)210 648 A
  5771. 5040 V
  5772. (25646)210 648 A
  5773. 1110(/*)S
  5774. 1236(If)S
  5775. 1362(a)S
  5776. (process)294 1446 A
  5777. (has)126 1782 A
  5778. (another)294 1950 A
  5779. (root)168 2286 A
  5780. (directory)378 2496 A
  5781. (than)168 2916 A
  5782. (the)126 3126 A
  5783. (system)252 3294 A
  5784. (root,)210 3588 A
  5785. 3840(we)S
  5786. (might)210 3966 A
  5787. 5130 V
  5788. (25647)210 648 A
  5789. 1152(*)S
  5790. ("accidently")504 1236 A
  5791. 1782(be)S
  5792. (moving)252 1908 A
  5793. (it's)168 2202 A
  5794. (working)294 2412 A
  5795. (directory)378 2748 A
  5796. 3168(to)S
  5797. 3294(a)S
  5798. (place)210 3378 A
  5799. (where)210 3630 A
  5800. (it's)168 3882 A
  5801. 5220 V
  5802. (25648)210 648 A
  5803. 1152(*)S
  5804. (root)168 1236 A
  5805. (directory)378 1446 A
  5806. (isn't)210 1866 A
  5807. 2118(a)S
  5808. (super)210 2202 A
  5809. (directory)378 2454 A
  5810. 2874(of)S
  5811. 3000(it)S
  5812. (anymore.)336 3126 A
  5813. (This)168 3504 A
  5814. (can)126 3714 A
  5815. (make)168 3882 A
  5816. 5310 V
  5817. (25649)210 648 A
  5818. 1152(*)S
  5819. (the)126 1236 A
  5820. (function)336 1404 A
  5821. (chroot)252 1782 A
  5822. (useless.)336 2076 A
  5823. 2454(If)S
  5824. (chroot)252 2580 A
  5825. (will)168 2874 A
  5826. 3084(be)S
  5827. (used)168 3210 A
  5828. (often)210 3420 A
  5829. 3672(we)S
  5830. (should)252 3798 A
  5831. 5400 V
  5832. (25650)210 648 A
  5833. 1152(*)S
  5834. (probably)336 1236 A
  5835. (check)210 1614 A
  5836. (for)126 1866 A
  5837. 2034(it)S
  5838. (here.)210 2160 A
  5839. 5490 V
  5840. (25651)210 648 A
  5841. 1152(*/)S
  5842. 5580 V
  5843. (25652)210 648 A
  5844. 5670 V
  5845. (25653)210 648 A
  5846. 1110(/*)S
  5847. (The)126 1236 A
  5848. (rename)252 1404 A
  5849. (will)168 1698 A
  5850. (probably)336 1908 A
  5851. (work.)210 2286 A
  5852. (Only)168 2538 A
  5853. (two)126 2748 A
  5854. (things)252 2916 A
  5855. (can)126 3210 A
  5856. 3378(go)S
  5857. (wrong)210 3504 A
  5858. (now:)168 3756 A
  5859. 5760 V
  5860. (25654)210 648 A
  5861. 1152(*)S
  5862. 1236(1.)S
  5863. (being)210 1362 A
  5864. (unable)252 1614 A
  5865. 1908(to)S
  5866. (remove)252 2034 A
  5867. (the)126 2328 A
  5868. (new)126 2496 A
  5869. (file.)210 2664 A
  5870. ((when)210 2916 A
  5871. (new)126 3168 A
  5872. (file)168 3336 A
  5873. (already)294 3546 A
  5874. (exists))294 3882 A
  5875. 5850 V
  5876. (25655)210 648 A
  5877. 1152(*)S
  5878. 1236(2.)S
  5879. (being)210 1362 A
  5880. (unable)252 1614 A
  5881. 1908(to)S
  5882. (make)168 2034 A
  5883. (the)126 2244 A
  5884. (new)126 2412 A
  5885. (directory)378 2580 A
  5886. (entry.)252 3000 A
  5887. ((new)168 3294 A
  5888. (file)168 3504 A
  5889. (doesn't)294 3714 A
  5890. (exists))294 4050 A
  5891. 5940 V
  5892. (25656)210 648 A
  5893. 1152(*)S
  5894. ([directory)420 1404 A
  5895. (has)126 1866 A
  5896. 2034(to)S
  5897. (grow)168 2160 A
  5898. 2370(by)S
  5899. (one)126 2496 A
  5900. (block)210 2664 A
  5901. (and)126 2916 A
  5902. (cannot)252 3084 A
  5903. (because)294 3378 A
  5904. (the)126 3714 A
  5905. (disk)168 3882 A
  5906. 6030 V
  5907. (25657)210 648 A
  5908. 1152(*)S
  5909. 1446(is)S
  5910. (completely)420 1572 A
  5911. (full].)252 2034 A
  5912. 6120 V
  5913. (25658)210 648 A
  5914. 1152(*/)S
  5915. 6210 V
  5916. (25659)210 648 A
  5917. 1110(if)S
  5918. 1236((r)S
  5919. 1362(==)S
  5920. (OK))126 1488 A
  5921. 1656({)S
  5922. 8418 V
  5923. EP
  5924. %%Page: 354 354
  5925. BP
  5926. /slant 0 def
  5927. /height 0 def
  5928. 630 V
  5929. 12 B
  5930. (354)180 648 A
  5931. 11 R
  5932. 2160(File:)S
  5933. (src/fs/link.c)522 2393 A
  5934. 10 R
  5935. 3402(MINIX)S
  5936. 3730(SOURCE)S
  5937. 4153(CODE)S
  5938. 900 V
  5939. 7 LST
  5940. (25660)210 648 A
  5941. 1362(if)S
  5942. ((new_ip)294 1488 A
  5943. 1824(!=)S
  5944. (NIL_INODE))420 1950 A
  5945. 2412({)S
  5946. 990 V
  5947. (25661)210 648 A
  5948. 1782(/*)S
  5949. (There)210 1908 A
  5950. 2160(is)S
  5951. (already)294 2286 A
  5952. 2622(an)S
  5953. (entry)210 2748 A
  5954. (for)126 3000 A
  5955. ('new'.)252 3168 A
  5956. (Try)126 3462 A
  5957. 3630(to)S
  5958. (remove)252 3756 A
  5959. (it.)126 4050 A
  5960. 4218(*/)S
  5961. 1080 V
  5962. (25662)210 648 A
  5963. 1698(if)S
  5964. ((odir))252 1824 A
  5965. 1170 V
  5966. (25663)210 648 A
  5967. 2034(r)S
  5968. 2118(=)S
  5969. (remove_dir(new_dirp,)840 2202 A
  5970. (new_ip,)294 3084 A
  5971. (new_name);)420 3420 A
  5972. 1260 V
  5973. (25664)210 648 A
  5974. (else)168 1698 A
  5975. 1350 V
  5976. (25665)210 648 A
  5977. 2034(r)S
  5978. 2118(=)S
  5979. (unlink_file(new_dirp,)882 2202 A
  5980. (new_ip,)294 3126 A
  5981. (new_name);)420 3462 A
  5982. 1440 V
  5983. (25666)210 648 A
  5984. 1362(})S
  5985. 1530 V
  5986. (25667)210 648 A
  5987. 1362(/*)S
  5988. 1488(if)S
  5989. 1614(r)S
  5990. 1698(is)S
  5991. (OK,)126 1824 A
  5992. (the)126 1992 A
  5993. (rename)252 2160 A
  5994. (will)168 2454 A
  5995. (succeed,)336 2664 A
  5996. (while)210 3042 A
  5997. (there)210 3294 A
  5998. 3546(is)S
  5999. (now)126 3672 A
  6000. 3840(an)S
  6001. 1620 V
  6002. (25668)210 648 A
  6003. 1404(*)S
  6004. (unused)252 1488 A
  6005. (entry)210 1782 A
  6006. 2034(in)S
  6007. (the)126 2160 A
  6008. (new)126 2328 A
  6009. (parent)252 2496 A
  6010. (directory.)420 2790 A
  6011. 1710 V
  6012. (25669)210 648 A
  6013. 1404(*/)S
  6014. 1800 V
  6015. (25670)210 648 A
  6016. 1110(})S
  6017. 1890 V
  6018. (25671)210 648 A
  6019. 1980 V
  6020. (25672)210 648 A
  6021. 1110(if)S
  6022. 1236((r)S
  6023. 1362(==)S
  6024. (OK))126 1488 A
  6025. 1656({)S
  6026. 2070 V
  6027. (25673)210 648 A
  6028. 1362(/*)S
  6029. 1488(If)S
  6030. (the)126 1614 A
  6031. (new)126 1782 A
  6032. (name)168 1950 A
  6033. (will)168 2160 A
  6034. 2370(be)S
  6035. 2496(in)S
  6036. (the)126 2622 A
  6037. (same)168 2790 A
  6038. (parent)252 3000 A
  6039. (directory)378 3294 A
  6040. 3714(as)S
  6041. (the)126 3840 A
  6042. (old)126 4008 A
  6043. (one,)168 4176 A
  6044. 2160 V
  6045. (25674)210 648 A
  6046. 1404(*)S
  6047. (first)210 1488 A
  6048. (remove)252 1740 A
  6049. (the)126 2034 A
  6050. (old)126 2202 A
  6051. (name)168 2370 A
  6052. 2580(to)S
  6053. (free)168 2706 A
  6054. 2916(an)S
  6055. (entry)210 3042 A
  6056. (for)126 3294 A
  6057. (the)126 3462 A
  6058. (new)126 3630 A
  6059. (name,)210 3798 A
  6060. 2250 V
  6061. (25675)210 648 A
  6062. 1404(*)S
  6063. (otherwise)378 1488 A
  6064. (first)210 1908 A
  6065. (try)126 2160 A
  6066. 2328(to)S
  6067. (create)252 2454 A
  6068. (the)126 2748 A
  6069. (new)126 2916 A
  6070. (name)168 3084 A
  6071. (entry)210 3294 A
  6072. 3546(to)S
  6073. (make)168 3672 A
  6074. (sure)168 3882 A
  6075. 2340 V
  6076. (25676)210 648 A
  6077. 1404(*)S
  6078. (the)126 1488 A
  6079. (rename)252 1656 A
  6080. (will)168 1950 A
  6081. (succeed.)336 2160 A
  6082. 2430 V
  6083. (25677)210 648 A
  6084. 1404(*/)S
  6085. 2520 V
  6086. (25678)210 648 A
  6087. (numb)168 1362 A
  6088. 1572(=)S
  6089. (old_ip->i_num;)588 1656 A
  6090. 2706(/*)S
  6091. (inode)210 2832 A
  6092. (number)252 3084 A
  6093. 3378(of)S
  6094. (old)126 3504 A
  6095. (file)168 3672 A
  6096. 3882(*/)S
  6097. 2610 V
  6098. (25679)210 648 A
  6099. 2700 V
  6100. (25680)210 648 A
  6101. 1362(if)S
  6102. ((same_pdir))462 1488 A
  6103. 1992({)S
  6104. 2790 V
  6105. (25681)210 648 A
  6106. 1698(r)S
  6107. 1782(=)S
  6108. (search_dir(old_dirp,)840 1866 A
  6109. (old_name,)378 2748 A
  6110. ((ino_t)252 3168 A
  6111. 3462(*))S
  6112. 3588(0,)S
  6113. (DELETE);)336 3714 A
  6114. 2880 V
  6115. (25682)210 648 A
  6116. 3042(/*)S
  6117. (shouldn't)378 3168 A
  6118. 3588(go)S
  6119. (wrong.)252 3714 A
  6120. 4008(*/)S
  6121. 2970 V
  6122. (25683)210 648 A
  6123. 1698(if)S
  6124. ((r==OK))294 1824 A
  6125. ((void))252 2160 A
  6126. (search_dir(old_dirp,)840 2454 A
  6127. (new_name,)378 3336 A
  6128. (&numb,)252 3756 A
  6129. (ENTER);)294 4050 A
  6130. 3060 V
  6131. (25684)210 648 A
  6132. 1362(})S
  6133. (else)168 1446 A
  6134. 1656({)S
  6135. 3150 V
  6136. (25685)210 648 A
  6137. 1698(r)S
  6138. 1782(=)S
  6139. (search_dir(new_dirp,)840 1866 A
  6140. (new_name,)378 2748 A
  6141. (&numb,)252 3168 A
  6142. (ENTER);)294 3462 A
  6143. 3240 V
  6144. (25686)210 648 A
  6145. 1698(if)S
  6146. 1824((r)S
  6147. 1950(==)S
  6148. (OK))126 2076 A
  6149. 3330 V
  6150. (25687)210 648 A
  6151. ((void))252 1866 A
  6152. (search_dir(old_dirp,)840 2160 A
  6153. (old_name,)378 3042 A
  6154. ((ino_t)252 3462 A
  6155. 3756(*))S
  6156. 3882(0,)S
  6157. (DELETE);)336 4008 A
  6158. 3420 V
  6159. (25688)210 648 A
  6160. 1362(})S
  6161. 3510 V
  6162. (25689)210 648 A
  6163. 1110(})S
  6164. 3600 V
  6165. (25690)210 648 A
  6166. 1110(/*)S
  6167. 1236(If)S
  6168. 1362(r)S
  6169. 1446(is)S
  6170. (OK,)126 1572 A
  6171. (the)126 1740 A
  6172. (ctime)210 1908 A
  6173. (and)126 2160 A
  6174. (mtime)210 2328 A
  6175. 2580(of)S
  6176. (old_dirp)336 2706 A
  6177. (and)126 3084 A
  6178. (new_dirp)336 3252 A
  6179. (have)168 3630 A
  6180. (been)168 3840 A
  6181. (marked)252 4050 A
  6182. 3690 V
  6183. (25691)210 648 A
  6184. 1152(*)S
  6185. (for)126 1236 A
  6186. (update)252 1404 A
  6187. 1698(in)S
  6188. (search_dir.)462 1824 A
  6189. 3780 V
  6190. (25692)210 648 A
  6191. 1152(*/)S
  6192. 3870 V
  6193. (25693)210 648 A
  6194. 3960 V
  6195. (25694)210 648 A
  6196. 1110(if)S
  6197. 1236((r)S
  6198. 1362(==)S
  6199. 1488(OK)S
  6200. 1614(&&)S
  6201. (odir)168 1740 A
  6202. 1950(&&)S
  6203. (!same_pdir))462 2076 A
  6204. 2580({)S
  6205. 4050 V
  6206. (25695)210 648 A
  6207. 1362(/*)S
  6208. (Update)252 1488 A
  6209. (the)126 1782 A
  6210. 1950(..)S
  6211. (entry)210 2076 A
  6212. 2328(in)S
  6213. (the)126 2454 A
  6214. (directory)378 2622 A
  6215. ((still)252 3042 A
  6216. (points)252 3336 A
  6217. 3630(to)S
  6218. (old_dirp).)420 3756 A
  6219. 4218(*/)S
  6220. 4140 V
  6221. (25696)210 648 A
  6222. (numb)168 1362 A
  6223. 1572(=)S
  6224. (new_dirp->i_num;)672 1656 A
  6225. 4230 V
  6226. (25697)210 648 A
  6227. ((void))252 1362 A
  6228. (unlink_file(old_ip,)798 1656 A
  6229. (NIL_INODE,)420 2496 A
  6230. (dot2);)252 2958 A
  6231. 4320 V
  6232. (25698)210 648 A
  6233. 1362(if)S
  6234. ((search_dir(old_ip,)798 1488 A
  6235. (dot2,)210 2328 A
  6236. (&numb,)252 2580 A
  6237. (ENTER))252 2874 A
  6238. 3168(==)S
  6239. (OK))126 3294 A
  6240. 3462({)S
  6241. 4410 V
  6242. (25699)210 648 A
  6243. 1698(/*)S
  6244. (New)126 1824 A
  6245. (link)168 1992 A
  6246. (created.)336 2202 A
  6247. 2580(*/)S
  6248. 4500 V
  6249. (25700)210 648 A
  6250. (new_dirp->i_nlinks++;)882 1698 A
  6251. 4590 V
  6252. (25701)210 648 A
  6253. (new_dirp->i_dirt)672 1698 A
  6254. 2412(=)S
  6255. (DIRTY;)252 2496 A
  6256. 4680 V
  6257. (25702)210 648 A
  6258. 1362(})S
  6259. 4770 V
  6260. (25703)210 648 A
  6261. 1110(})S
  6262. 4860 V
  6263. (25704)210 648 A
  6264. 4950 V
  6265. (25705)210 648 A
  6266. 1110(/*)S
  6267. (Release)294 1236 A
  6268. (the)126 1572 A
  6269. (inodes.)294 1740 A
  6270. 2076(*/)S
  6271. 5040 V
  6272. (25706)210 648 A
  6273. (put_inode(old_dirp);)840 1110 A
  6274. 5130 V
  6275. (25707)210 648 A
  6276. (put_inode(old_ip);)756 1110 A
  6277. 5220 V
  6278. (25708)210 648 A
  6279. (put_inode(new_dirp);)840 1110 A
  6280. 5310 V
  6281. (25709)210 648 A
  6282. (put_inode(new_ip);)756 1110 A
  6283. 5400 V
  6284. (25710)210 648 A
  6285. (return(r)336 1110 A
  6286. 1488(==)S
  6287. (SAME)168 1614 A
  6288. 1824(?)S
  6289. 1908(OK)S
  6290. 2034(:)S
  6291. (r);)126 2118 A
  6292. 5490 V
  6293. (25711)210 648 A
  6294. 1026(})S
  6295. 5760 V
  6296. (25714)210 648 A
  6297. (/*===========================================================================*)3276 1026 A
  6298. 5850 V
  6299. (25715)210 648 A
  6300. 1068(*)S
  6301. (truncate)336 2370 A
  6302. 4260(*)S
  6303. 5940 V
  6304. (25716)210 648 A
  6305. (*===========================================================================*/)3276 1068 A
  6306. 6030 V
  6307. (25717)210 648 A
  6308. (PUBLIC)252 1026 A
  6309. (void)168 1320 A
  6310. (truncate(rip))546 1530 A
  6311. 6120 V
  6312. (25718)210 648 A
  6313. (register)336 1026 A
  6314. (struct)252 1404 A
  6315. (inode)210 1698 A
  6316. (*rip;)210 1950 A
  6317. 2370(/*)S
  6318. (pointer)294 2496 A
  6319. 2832(to)S
  6320. (inode)210 2958 A
  6321. 3210(to)S
  6322. 3336(be)S
  6323. (truncated)378 3462 A
  6324. 3882(*/)S
  6325. 6210 V
  6326. (25719)210 648 A
  6327. 1026({)S
  6328. 8418 V
  6329. EP
  6330. %%Page: 355 355
  6331. BP
  6332. /slant 0 def
  6333. /height 0 def
  6334. 630 V
  6335. 10 R
  6336. 648(MINIX)S
  6337. 976(SOURCE)S
  6338. 1399(CODE)S
  6339. 11 R
  6340. 2160(File:)S
  6341. (src/fs/link.c)522 2393 A
  6342. 12 B
  6343. (355)180 4248 A
  6344. 900 V
  6345. 7 LST
  6346. (25720)210 648 A
  6347. 1026(/*)S
  6348. (Remove)252 1152 A
  6349. (all)126 1446 A
  6350. (the)126 1614 A
  6351. (zones)210 1782 A
  6352. (from)168 2034 A
  6353. (the)126 2244 A
  6354. (inode)210 2412 A
  6355. ('rip')210 2664 A
  6356. (and)126 2916 A
  6357. (mark)168 3084 A
  6358. 3294(it)S
  6359. (dirty.)252 3420 A
  6360. 3714(*/)S
  6361. 990 V
  6362. (25721)210 648 A
  6363. 1080 V
  6364. (25722)210 648 A
  6365. (register)336 1110 A
  6366. (block_t)294 1488 A
  6367. 1824(b;)S
  6368. 1170 V
  6369. (25723)210 648 A
  6370. (zone_t)252 1110 A
  6371. 1404(z,)S
  6372. (zone_size,)420 1530 A
  6373. (z1;)126 1992 A
  6374. 1260 V
  6375. (25724)210 648 A
  6376. (off_t)210 1110 A
  6377. (position;)378 1362 A
  6378. 1350 V
  6379. (25725)210 648 A
  6380. (int)126 1110 A
  6381. 1278(i,)S
  6382. (scale,)252 1404 A
  6383. (file_type,)420 1698 A
  6384. (waspipe,)336 2160 A
  6385. (single,)294 2538 A
  6386. (nr_indirects;)546 2874 A
  6387. 1440 V
  6388. (25726)210 648 A
  6389. (struct)252 1110 A
  6390. (buf)126 1404 A
  6391. (*bp;)168 1572 A
  6392. 1530 V
  6393. (25727)210 648 A
  6394. (dev_t)210 1110 A
  6395. (dev;)168 1362 A
  6396. 1620 V
  6397. (25728)210 648 A
  6398. 1710 V
  6399. (25729)210 648 A
  6400. (file_type)378 1110 A
  6401. 1530(=)S
  6402. (rip->i_mode)462 1614 A
  6403. 2118(&)S
  6404. (I_TYPE;)294 2202 A
  6405. 2706(/*)S
  6406. (check)210 2832 A
  6407. 3084(to)S
  6408. (see)126 3210 A
  6409. 3378(if)S
  6410. (file)168 3504 A
  6411. 3714(is)S
  6412. (special)294 3840 A
  6413. 4176(*/)S
  6414. 1800 V
  6415. (25730)210 648 A
  6416. 1110(if)S
  6417. ((file_type)420 1236 A
  6418. 1698(==)S
  6419. (I_CHAR_SPECIAL)588 1824 A
  6420. 2454(||)S
  6421. (file_type)378 2580 A
  6422. 3000(==)S
  6423. (I_BLOCK_SPECIAL))672 3126 A
  6424. (return;)294 3840 A
  6425. 1890 V
  6426. (25731)210 648 A
  6427. (dev)126 1110 A
  6428. 1278(=)S
  6429. (rip->i_dev;)462 1362 A
  6430. 2370(/*)S
  6431. (device)252 2496 A
  6432. 2790(on)S
  6433. (which)210 2916 A
  6434. (inode)210 3168 A
  6435. (resides)294 3420 A
  6436. 3756(*/)S
  6437. 1980 V
  6438. (25732)210 648 A
  6439. (scale)210 1110 A
  6440. 1362(=)S
  6441. (rip->i_sp->s_log_zone_size;)1134 1446 A
  6442. 2070 V
  6443. (25733)210 648 A
  6444. (zone_size)378 1110 A
  6445. 1530(=)S
  6446. ((zone_t))336 1614 A
  6447. (BLOCK_SIZE)420 1992 A
  6448. 2454(<<)S
  6449. (scale;)252 2580 A
  6450. 2160 V
  6451. (25734)210 648 A
  6452. (nr_indirects)504 1110 A
  6453. 1656(=)S
  6454. (rip->i_nindirs;)630 1740 A
  6455. 2250 V
  6456. (25735)210 648 A
  6457. 2340 V
  6458. (25736)210 648 A
  6459. 1110(/*)S
  6460. (Pipes)210 1236 A
  6461. (can)126 1488 A
  6462. (shrink,)294 1656 A
  6463. 1992(so)S
  6464. (adjust)252 2118 A
  6465. (size)168 2412 A
  6466. 2622(to)S
  6467. (make)168 2748 A
  6468. (sure)168 2958 A
  6469. (all)126 3168 A
  6470. (zones)210 3336 A
  6471. (are)126 3588 A
  6472. (removed.)336 3756 A
  6473. 4134(*/)S
  6474. 2430 V
  6475. (25737)210 648 A
  6476. (waspipe)294 1110 A
  6477. 1446(=)S
  6478. (rip->i_pipe)462 1530 A
  6479. 2034(==)S
  6480. (I_PIPE;)294 2160 A
  6481. 2706(/*)S
  6482. (TRUE)168 2832 A
  6483. 3042(is)S
  6484. (this)168 3168 A
  6485. (was)126 3378 A
  6486. 3546(a)S
  6487. (pipe)168 3630 A
  6488. 3840(*/)S
  6489. 2520 V
  6490. (25738)210 648 A
  6491. 1110(if)S
  6492. ((waspipe))378 1236 A
  6493. (rip->i_size)462 1656 A
  6494. 2160(=)S
  6495. (PIPE_SIZE;)420 2244 A
  6496. 2610 V
  6497. (25739)210 648 A
  6498. 2700 V
  6499. (25740)210 648 A
  6500. 1110(/*)S
  6501. (Step)168 1236 A
  6502. (through)294 1446 A
  6503. (the)126 1782 A
  6504. (file)168 1950 A
  6505. 2160(a)S
  6506. (zone)168 2244 A
  6507. 2454(at)S
  6508. 2580(a)S
  6509. (time,)210 2664 A
  6510. (finding)294 2916 A
  6511. (and)126 3252 A
  6512. (freeing)294 3420 A
  6513. (the)126 3756 A
  6514. (zones.)252 3924 A
  6515. 4218(*/)S
  6516. 2790 V
  6517. (25741)210 648 A
  6518. (for)126 1110 A
  6519. ((position)378 1278 A
  6520. 1698(=)S
  6521. 1782(0;)S
  6522. (position)336 1908 A
  6523. 2286(<)S
  6524. (rip->i_size;)504 2370 A
  6525. (position)336 2916 A
  6526. 3294(+=)S
  6527. (zone_size))420 3420 A
  6528. 3882({)S
  6529. 2880 V
  6530. (25742)210 648 A
  6531. 1362(if)S
  6532. 1488(()S
  6533. 1572((b)S
  6534. 1698(=)S
  6535. (read_map(rip,)546 1782 A
  6536. (position)))420 2370 A
  6537. 2832(!=)S
  6538. (NO_BLOCK))378 2958 A
  6539. 3378({)S
  6540. 2970 V
  6541. (25743)210 648 A
  6542. 1698(z)S
  6543. 1782(=)S
  6544. ((zone_t))336 1866 A
  6545. 2244(b)S
  6546. 2328(>>)S
  6547. (scale;)252 2454 A
  6548. 3060 V
  6549. (25744)210 648 A
  6550. (free_zone(dev,)588 1698 A
  6551. (z);)126 2328 A
  6552. 3150 V
  6553. (25745)210 648 A
  6554. 1362(})S
  6555. 3240 V
  6556. (25746)210 648 A
  6557. 1110(})S
  6558. 3330 V
  6559. (25747)210 648 A
  6560. 3420 V
  6561. (25748)210 648 A
  6562. 1110(/*)S
  6563. (All)126 1236 A
  6564. (the)126 1404 A
  6565. (data)168 1572 A
  6566. (zones)210 1782 A
  6567. (have)168 2034 A
  6568. (been)168 2244 A
  6569. (freed.)252 2454 A
  6570. (Now)126 2790 A
  6571. (free)168 2958 A
  6572. (the)126 3168 A
  6573. (indirect)336 3336 A
  6574. (zones.)252 3714 A
  6575. 4008(*/)S
  6576. 3510 V
  6577. (25749)210 648 A
  6578. (rip->i_dirt)462 1110 A
  6579. 1614(=)S
  6580. (DIRTY;)252 1698 A
  6581. 3600 V
  6582. (25750)210 648 A
  6583. 1110(if)S
  6584. ((waspipe))378 1236 A
  6585. 1656({)S
  6586. 3690 V
  6587. (25751)210 648 A
  6588. (wipe_inode(rip);)672 1362 A
  6589. 2370(/*)S
  6590. (clear)210 2496 A
  6591. (out)126 2748 A
  6592. (inode)210 2916 A
  6593. (for)126 3168 A
  6594. (pipes)210 3336 A
  6595. 3588(*/)S
  6596. 3780 V
  6597. (25752)210 648 A
  6598. (return;)294 1362 A
  6599. 2370(/*)S
  6600. (indirect)336 2496 A
  6601. (slots)210 2874 A
  6602. (contain)294 3126 A
  6603. (file)168 3462 A
  6604. (positions)378 3672 A
  6605. 4092(*/)S
  6606. 3870 V
  6607. (25753)210 648 A
  6608. 1110(})S
  6609. 3960 V
  6610. (25754)210 648 A
  6611. (single)252 1110 A
  6612. 1404(=)S
  6613. (rip->i_ndzones;)630 1488 A
  6614. 4050 V
  6615. (25755)210 648 A
  6616. (free_zone(dev,)588 1110 A
  6617. (rip->i_zone[single]);)882 1740 A
  6618. 2706(/*)S
  6619. (single)252 2832 A
  6620. (indirect)336 3126 A
  6621. (zone)168 3504 A
  6622. 3714(*/)S
  6623. 4140 V
  6624. (25756)210 648 A
  6625. 1110(if)S
  6626. 1236(()S
  6627. 1320((z)S
  6628. 1446(=)S
  6629. (rip->i_zone[single+1]))924 1530 A
  6630. 2496(!=)S
  6631. (NO_ZONE))336 2622 A
  6632. 3000({)S
  6633. 4230 V
  6634. (25757)210 648 A
  6635. 1362(/*)S
  6636. (Free)168 1488 A
  6637. (all)126 1698 A
  6638. (the)126 1866 A
  6639. (single)252 2034 A
  6640. (indirect)336 2328 A
  6641. (zones)210 2706 A
  6642. (pointed)294 2958 A
  6643. 3294(to)S
  6644. 3420(by)S
  6645. (the)126 3546 A
  6646. (double.)294 3714 A
  6647. 4050(*/)S
  6648. 4320 V
  6649. (25758)210 648 A
  6650. 1362(b)S
  6651. 1446(=)S
  6652. ((block_t))378 1530 A
  6653. 1950(z)S
  6654. 2034(<<)S
  6655. (scale;)252 2160 A
  6656. 4410 V
  6657. (25759)210 648 A
  6658. 1362(bp)S
  6659. 1488(=)S
  6660. (get_block(dev,)588 1572 A
  6661. 2202(b,)S
  6662. (NORMAL);)336 2328 A
  6663. 2706(/*)S
  6664. (get)126 2832 A
  6665. (double)252 3000 A
  6666. (indirect)336 3294 A
  6667. (zone)168 3672 A
  6668. 3882(*/)S
  6669. 4500 V
  6670. (25760)210 648 A
  6671. (for)126 1362 A
  6672. 1530((i)S
  6673. 1656(=)S
  6674. 1740(0;)S
  6675. 1866(i)S
  6676. 1950(<)S
  6677. (nr_indirects;)546 2034 A
  6678. (i++))168 2622 A
  6679. 2832({)S
  6680. 4590 V
  6681. (25761)210 648 A
  6682. 1698(z1)S
  6683. 1824(=)S
  6684. (rd_indir(bp,)504 1908 A
  6685. (i);)126 2454 A
  6686. 4680 V
  6687. (25762)210 648 A
  6688. (free_zone(dev,)588 1698 A
  6689. (z1);)168 2328 A
  6690. 4770 V
  6691. (25763)210 648 A
  6692. 1362(})S
  6693. 4860 V
  6694. (25764)210 648 A
  6695. 4950 V
  6696. (25765)210 648 A
  6697. 1362(/*)S
  6698. (Now)126 1488 A
  6699. (free)168 1656 A
  6700. (the)126 1866 A
  6701. (double)252 2034 A
  6702. (indirect)336 2328 A
  6703. (zone)168 2706 A
  6704. (itself.)294 2916 A
  6705. 3252(*/)S
  6706. 5040 V
  6707. (25766)210 648 A
  6708. (put_block(bp,)546 1362 A
  6709. (INDIRECT_BLOCK);)672 1950 A
  6710. 5130 V
  6711. (25767)210 648 A
  6712. (free_zone(dev,)588 1362 A
  6713. (z);)126 1992 A
  6714. 5220 V
  6715. (25768)210 648 A
  6716. 1110(})S
  6717. 5310 V
  6718. (25769)210 648 A
  6719. 5400 V
  6720. (25770)210 648 A
  6721. 1110(/*)S
  6722. (Leave)210 1236 A
  6723. (zone)168 1488 A
  6724. (numbers)294 1698 A
  6725. (for)126 2034 A
  6726. (de(1))210 2202 A
  6727. 2454(to)S
  6728. (recover)294 2580 A
  6729. (file)168 2916 A
  6730. (after)210 3126 A
  6731. 3378(an)S
  6732. (unlink(2).)420 3504 A
  6733. 4008(*/)S
  6734. 5490 V
  6735. (25771)210 648 A
  6736. 1026(})S
  6737. 5760 V
  6738. (25774)210 648 A
  6739. (/*===========================================================================*)3276 1026 A
  6740. 5850 V
  6741. (25775)210 648 A
  6742. 1068(*)S
  6743. (remove_dir)420 2370 A
  6744. 4260(*)S
  6745. 5940 V
  6746. (25776)210 648 A
  6747. (*===========================================================================*/)3276 1068 A
  6748. 6030 V
  6749. (25777)210 648 A
  6750. (PRIVATE)294 1026 A
  6751. (int)126 1362 A
  6752. (remove_dir(rldirp,)756 1530 A
  6753. (rip,)168 2328 A
  6754. (dir_name))378 2538 A
  6755. 6120 V
  6756. (25778)210 648 A
  6757. (struct)252 1026 A
  6758. (inode)210 1320 A
  6759. (*rldirp;)336 1572 A
  6760. 2706(/*)S
  6761. (parent)252 2832 A
  6762. (directory)378 3126 A
  6763. 3546(*/)S
  6764. 6210 V
  6765. (25779)210 648 A
  6766. (struct)252 1026 A
  6767. (inode)210 1320 A
  6768. (*rip;)210 1572 A
  6769. 2706(/*)S
  6770. (directory)378 2832 A
  6771. 3252(to)S
  6772. 3378(be)S
  6773. (removed)294 3504 A
  6774. 3840(*/)S
  6775. 8418 V
  6776. EP
  6777. %%Page: 356 356
  6778. BP
  6779. /slant 0 def
  6780. /height 0 def
  6781. 630 V
  6782. 12 B
  6783. (356)180 648 A
  6784. 11 R
  6785. 2160(File:)S
  6786. (src/fs/link.c)522 2393 A
  6787. 10 R
  6788. 3402(MINIX)S
  6789. 3730(SOURCE)S
  6790. 4153(CODE)S
  6791. 900 V
  6792. 7 LST
  6793. (25780)210 648 A
  6794. (char)168 1026 A
  6795. (dir_name[NAME_MAX];)798 1236 A
  6796. 2706(/*)S
  6797. (name)168 2832 A
  6798. 3042(of)S
  6799. (directory)378 3168 A
  6800. 3588(to)S
  6801. 3714(be)S
  6802. (removed)294 3840 A
  6803. 4176(*/)S
  6804. 990 V
  6805. (25781)210 648 A
  6806. 1026({)S
  6807. 1080 V
  6808. (25782)210 648 A
  6809. 1110(/*)S
  6810. 1236(A)S
  6811. (directory)378 1320 A
  6812. (file)168 1740 A
  6813. (has)126 1950 A
  6814. 2118(to)S
  6815. 2244(be)S
  6816. (removed.)336 2370 A
  6817. (Five)168 2748 A
  6818. (conditions)420 2958 A
  6819. (have)168 3420 A
  6820. 3630(to)S
  6821. (met:)168 3756 A
  6822. 1170 V
  6823. (25783)210 648 A
  6824. 1152(*)S
  6825. 1362(-)S
  6826. (The)126 1446 A
  6827. (file)168 1614 A
  6828. (must)168 1824 A
  6829. 2034(be)S
  6830. 2160(a)S
  6831. (directory)378 2244 A
  6832. 1260 V
  6833. (25784)210 648 A
  6834. 1152(*)S
  6835. 1362(-)S
  6836. (The)126 1446 A
  6837. (directory)378 1614 A
  6838. (must)168 2034 A
  6839. 2244(be)S
  6840. (empty)210 2370 A
  6841. ((except)294 2622 A
  6842. (for)126 2958 A
  6843. 3126(.)S
  6844. (and)126 3210 A
  6845. (..))126 3378 A
  6846. 1350 V
  6847. (25785)210 648 A
  6848. 1152(*)S
  6849. 1362(-)S
  6850. (The)126 1446 A
  6851. (final)210 1614 A
  6852. (component)378 1866 A
  6853. 2286(of)S
  6854. (the)126 2412 A
  6855. (path)168 2580 A
  6856. (must)168 2790 A
  6857. (not)126 3000 A
  6858. 3168(be)S
  6859. 3294(.)S
  6860. 3378(or)S
  6861. 3504(..)S
  6862. 1440 V
  6863. (25786)210 648 A
  6864. 1152(*)S
  6865. 1362(-)S
  6866. (The)126 1446 A
  6867. (directory)378 1614 A
  6868. (must)168 2034 A
  6869. (not)126 2244 A
  6870. 2412(be)S
  6871. (the)126 2538 A
  6872. (root)168 2706 A
  6873. 2916(of)S
  6874. 3042(a)S
  6875. (mounted)294 3126 A
  6876. (file)168 3462 A
  6877. (system)252 3672 A
  6878. 1530 V
  6879. (25787)210 648 A
  6880. 1152(*)S
  6881. 1362(-)S
  6882. (The)126 1446 A
  6883. (directory)378 1614 A
  6884. (must)168 2034 A
  6885. (not)126 2244 A
  6886. 2412(be)S
  6887. (anybody's)378 2538 A
  6888. (root/working)504 2958 A
  6889. (directory)378 3504 A
  6890. 1620 V
  6891. (25788)210 648 A
  6892. 1152(*/)S
  6893. 1710 V
  6894. (25789)210 648 A
  6895. 1800 V
  6896. (25790)210 648 A
  6897. (int)126 1110 A
  6898. 1278(r;)S
  6899. 1890 V
  6900. (25791)210 648 A
  6901. (register)336 1110 A
  6902. (struct)252 1488 A
  6903. (fproc)210 1782 A
  6904. (*rfp;)210 2034 A
  6905. 1980 V
  6906. (25792)210 648 A
  6907. 2070 V
  6908. (25793)210 648 A
  6909. 1110(/*)S
  6910. (search_dir)420 1236 A
  6911. (checks)252 1698 A
  6912. (that)168 1992 A
  6913. (rip)126 2202 A
  6914. 2370(is)S
  6915. 2496(a)S
  6916. (directory)378 2580 A
  6917. (too.)168 3000 A
  6918. 3210(*/)S
  6919. 2160 V
  6920. (25794)210 648 A
  6921. 1110(if)S
  6922. (((r)126 1236 A
  6923. 1404(=)S
  6924. (search_dir(rip,)630 1488 A
  6925. ("",)126 2160 A
  6926. ((ino_t)252 2328 A
  6927. 2622(*))S
  6928. 2748(0,)S
  6929. (IS_EMPTY)))420 2874 A
  6930. 3336(!=)S
  6931. (OK))126 3462 A
  6932. (return)252 3630 A
  6933. 3924(r;)S
  6934. 2250 V
  6935. (25795)210 648 A
  6936. 2340 V
  6937. (25796)210 648 A
  6938. 1110(if)S
  6939. ((strcmp(dir_name,)714 1236 A
  6940. ("."))168 1992 A
  6941. 2202(==)S
  6942. 2328(0)S
  6943. 2412(||)S
  6944. (strcmp(dir_name,)672 2538 A
  6945. (".."))210 3252 A
  6946. 3504(==)S
  6947. (0)return(EINVAL);)714 3630 A
  6948. 2430 V
  6949. (25797)210 648 A
  6950. 1110(if)S
  6951. ((rip->i_num)462 1236 A
  6952. 1740(==)S
  6953. (ROOT_INODE))462 1866 A
  6954. (return(EBUSY);)588 2370 A
  6955. 3000(/*)S
  6956. (can't)210 3126 A
  6957. (remove)252 3378 A
  6958. ('root')252 3672 A
  6959. 3966(*/)S
  6960. 2520 V
  6961. (25798)210 648 A
  6962. 2610 V
  6963. (25799)210 648 A
  6964. (for)126 1110 A
  6965. ((rfp)168 1278 A
  6966. 1488(=)S
  6967. (&fproc[INIT_PROC_NR)798 1572 A
  6968. 2412(+)S
  6969. (1];)126 2496 A
  6970. (rfp)126 2664 A
  6971. 2832(<)S
  6972. (&fproc[NR_PROCS];)714 2916 A
  6973. (rfp++))252 3672 A
  6974. 2700 V
  6975. (25800)210 648 A
  6976. 1362(if)S
  6977. ((rfp->fp_workdir)672 1488 A
  6978. 2202(==)S
  6979. (rip)126 2328 A
  6980. 2496(||)S
  6981. (rfp->fp_rootdir)630 2622 A
  6982. 3294(==)S
  6983. (rip))168 3420 A
  6984. (return(EBUSY);)588 3630 A
  6985. 2790 V
  6986. (25801)210 648 A
  6987. 2370(/*)S
  6988. (can't)210 2496 A
  6989. (remove)252 2748 A
  6990. (anybody's)378 3042 A
  6991. (working)294 3462 A
  6992. (dir)126 3798 A
  6993. 3966(*/)S
  6994. 2880 V
  6995. (25802)210 648 A
  6996. 2970 V
  6997. (25803)210 648 A
  6998. 1110(/*)S
  6999. (Actually)336 1236 A
  7000. (try)126 1614 A
  7001. 1782(to)S
  7002. (unlink)252 1908 A
  7003. (the)126 2202 A
  7004. (file;)210 2370 A
  7005. (fails)210 2622 A
  7006. 2874(if)S
  7007. (parent)252 3000 A
  7008. 3294(is)S
  7009. (mode)168 3420 A
  7010. 3630(0)S
  7011. (etc.)168 3714 A
  7012. 3924(*/)S
  7013. 3060 V
  7014. (25804)210 648 A
  7015. 1110(if)S
  7016. (((r)126 1236 A
  7017. 1404(=)S
  7018. (unlink_file(rldirp,)798 1488 A
  7019. (rip,)168 2328 A
  7020. (dir_name)))420 2538 A
  7021. 3000(!=)S
  7022. (OK))126 3126 A
  7023. (return)252 3294 A
  7024. 3588(r;)S
  7025. 3150 V
  7026. (25805)210 648 A
  7027. 3240 V
  7028. (25806)210 648 A
  7029. 1110(/*)S
  7030. (Unlink)252 1236 A
  7031. 1530(.)S
  7032. (and)126 1614 A
  7033. 1782(..)S
  7034. (from)168 1908 A
  7035. (the)126 2118 A
  7036. (dir.)168 2286 A
  7037. (The)126 2496 A
  7038. (super)210 2664 A
  7039. (user)168 2916 A
  7040. (can)126 3126 A
  7041. (link)168 3294 A
  7042. (and)126 3504 A
  7043. (unlink)252 3672 A
  7044. (any)126 3966 A
  7045. (dir,)168 4134 A
  7046. 3330 V
  7047. (25807)210 648 A
  7048. 1152(*)S
  7049. 1236(so)S
  7050. (don't)210 1362 A
  7051. (make)168 1614 A
  7052. (too)126 1824 A
  7053. (many)168 1992 A
  7054. (assumptions)462 2202 A
  7055. (about)210 2706 A
  7056. (them.)210 2958 A
  7057. 3420 V
  7058. (25808)210 648 A
  7059. 1152(*/)S
  7060. 3510 V
  7061. (25809)210 648 A
  7062. ((void))252 1110 A
  7063. (unlink_file(rip,)672 1404 A
  7064. (NIL_INODE,)420 2118 A
  7065. (dot1);)252 2580 A
  7066. 3600 V
  7067. (25810)210 648 A
  7068. ((void))252 1110 A
  7069. (unlink_file(rip,)672 1404 A
  7070. (NIL_INODE,)420 2118 A
  7071. (dot2);)252 2580 A
  7072. 3690 V
  7073. (25811)210 648 A
  7074. (return(OK);)462 1110 A
  7075. 3780 V
  7076. (25812)210 648 A
  7077. 1026(})S
  7078. 4050 V
  7079. (25815)210 648 A
  7080. (/*===========================================================================*)3276 1026 A
  7081. 4140 V
  7082. (25816)210 648 A
  7083. 1068(*)S
  7084. (unlink_file)462 2370 A
  7085. 4260(*)S
  7086. 4230 V
  7087. (25817)210 648 A
  7088. (*===========================================================================*/)3276 1068 A
  7089. 4320 V
  7090. (25818)210 648 A
  7091. (PRIVATE)294 1026 A
  7092. (int)126 1362 A
  7093. (unlink_file(dirp,)714 1530 A
  7094. (rip,)168 2286 A
  7095. (file_name))420 2496 A
  7096. 4410 V
  7097. (25819)210 648 A
  7098. (struct)252 1026 A
  7099. (inode)210 1320 A
  7100. (*dirp;)252 1572 A
  7101. 2370(/*)S
  7102. (parent)252 2496 A
  7103. (directory)378 2790 A
  7104. 3210(of)S
  7105. (file)168 3336 A
  7106. 3546(*/)S
  7107. 4500 V
  7108. (25820)210 648 A
  7109. (struct)252 1026 A
  7110. (inode)210 1320 A
  7111. (*rip;)210 1572 A
  7112. 2370(/*)S
  7113. (inode)210 2496 A
  7114. 2748(of)S
  7115. (file,)210 2874 A
  7116. (may)126 3126 A
  7117. 3294(be)S
  7118. (NIL_INODE)378 3420 A
  7119. (too.)168 3840 A
  7120. 4050(*/)S
  7121. 4590 V
  7122. (25821)210 648 A
  7123. (char)168 1026 A
  7124. (file_name[NAME_MAX];)840 1236 A
  7125. 2370(/*)S
  7126. (name)168 2496 A
  7127. 2706(of)S
  7128. (file)168 2832 A
  7129. 3042(to)S
  7130. 3168(be)S
  7131. (removed)294 3294 A
  7132. 3630(*/)S
  7133. 4680 V
  7134. (25822)210 648 A
  7135. 1026({)S
  7136. 4770 V
  7137. (25823)210 648 A
  7138. 1026(/*)S
  7139. (Unlink)252 1152 A
  7140. ('file_name';)504 1446 A
  7141. (rip)126 1992 A
  7142. (must)168 2160 A
  7143. 2370(be)S
  7144. (the)126 2496 A
  7145. (inode)210 2664 A
  7146. 2916(of)S
  7147. ('file_name')462 3042 A
  7148. 3546(or)S
  7149. (NIL_INODE.)420 3672 A
  7150. 4134(*/)S
  7151. 4860 V
  7152. (25824)210 648 A
  7153. 4950 V
  7154. (25825)210 648 A
  7155. (ino_t)210 1110 A
  7156. (numb;)210 1362 A
  7157. 2370(/*)S
  7158. (inode)210 2496 A
  7159. (number)252 2748 A
  7160. 3042(*/)S
  7161. 5040 V
  7162. (25826)210 648 A
  7163. (int)126 1110 A
  7164. 1362(r;)S
  7165. 5130 V
  7166. (25827)210 648 A
  7167. 5220 V
  7168. (25828)210 648 A
  7169. 1110(/*)S
  7170. 1236(If)S
  7171. (rip)126 1362 A
  7172. 1530(is)S
  7173. (not)126 1656 A
  7174. (NIL_INODE,)420 1824 A
  7175. 2286(it)S
  7176. 2412(is)S
  7177. (used)168 2538 A
  7178. 2748(to)S
  7179. (get)126 2874 A
  7180. (faster)252 3042 A
  7181. (access)252 3336 A
  7182. 3630(to)S
  7183. (the)126 3756 A
  7184. (inode.)252 3924 A
  7185. 4218(*/)S
  7186. 5310 V
  7187. (25829)210 648 A
  7188. 1110(if)S
  7189. ((rip)168 1236 A
  7190. 1446(==)S
  7191. (NIL_INODE))420 1572 A
  7192. 2034({)S
  7193. 5400 V
  7194. (25830)210 648 A
  7195. 1362(/*)S
  7196. (Search)252 1488 A
  7197. (for)126 1782 A
  7198. (file)168 1950 A
  7199. 2160(in)S
  7200. (directory)378 2286 A
  7201. (and)126 2706 A
  7202. (try)126 2874 A
  7203. 3042(to)S
  7204. (get)126 3168 A
  7205. (its)126 3336 A
  7206. (inode.)252 3504 A
  7207. 3798(*/)S
  7208. 5490 V
  7209. (25831)210 648 A
  7210. (err_code)336 1362 A
  7211. 1740(=)S
  7212. (search_dir(dirp,)672 1824 A
  7213. (file_name,)420 2538 A
  7214. (&numb,)252 3000 A
  7215. (LOOK_UP);)378 3294 A
  7216. 5580 V
  7217. (25832)210 648 A
  7218. 1362(if)S
  7219. ((err_code)378 1488 A
  7220. 1908(==)S
  7221. (OK))126 2034 A
  7222. (rip)126 2202 A
  7223. 2370(=)S
  7224. (get_inode(dirp->i_dev,)924 2454 A
  7225. ((int))210 3420 A
  7226. (numb);)252 3672 A
  7227. 5670 V
  7228. (25833)210 648 A
  7229. 1362(if)S
  7230. ((err_code)378 1488 A
  7231. 1908(!=)S
  7232. 2034(OK)S
  7233. 2160(||)S
  7234. (rip)126 2286 A
  7235. 2454(==)S
  7236. (NIL_INODE))420 2580 A
  7237. (return(err_code);)714 3042 A
  7238. 5760 V
  7239. (25834)210 648 A
  7240. 1110(})S
  7241. (else)168 1194 A
  7242. 1404({)S
  7243. 5850 V
  7244. (25835)210 648 A
  7245. (dup_inode(rip);)630 1362 A
  7246. 2370(/*)S
  7247. (inode)210 2496 A
  7248. (will)168 2748 A
  7249. 2958(be)S
  7250. (returned)336 3084 A
  7251. (with)168 3462 A
  7252. (put_inode)378 3672 A
  7253. 4092(*/)S
  7254. 5940 V
  7255. (25836)210 648 A
  7256. 1110(})S
  7257. 6030 V
  7258. (25837)210 648 A
  7259. 6120 V
  7260. (25838)210 648 A
  7261. 1110(r)S
  7262. 1194(=)S
  7263. (search_dir(dirp,)672 1278 A
  7264. (file_name,)420 1992 A
  7265. ((ino_t)252 2454 A
  7266. 2748(*))S
  7267. 2874(0,)S
  7268. (DELETE);)336 3000 A
  7269. 6210 V
  7270. (25839)210 648 A
  7271. 8418 V
  7272. EP
  7273. %%Page: 357 357
  7274. BP
  7275. /slant 0 def
  7276. /height 0 def
  7277. 630 V
  7278. 10 R
  7279. 648(MINIX)S
  7280. 976(SOURCE)S
  7281. 1399(CODE)S
  7282. 11 R
  7283. 2160(File:)S
  7284. (src/fs/link.c)522 2393 A
  7285. 12 B
  7286. (357)180 4248 A
  7287. 900 V
  7288. 7 LST
  7289. (25840)210 648 A
  7290. 1110(if)S
  7291. 1236((r)S
  7292. 1362(==)S
  7293. (OK))126 1488 A
  7294. 1656({)S
  7295. 990 V
  7296. (25841)210 648 A
  7297. (rip->i_nlinks--;)672 1362 A
  7298. 2370(/*)S
  7299. (entry)210 2496 A
  7300. (deleted)294 2748 A
  7301. (from)168 3084 A
  7302. (parent's)336 3294 A
  7303. (dir)126 3672 A
  7304. 3840(*/)S
  7305. 1080 V
  7306. (25842)210 648 A
  7307. (rip->i_update)546 1362 A
  7308. 1950(|=)S
  7309. (CTIME;)252 2076 A
  7310. 1170 V
  7311. (25843)210 648 A
  7312. (rip->i_dirt)462 1362 A
  7313. 1866(=)S
  7314. (DIRTY;)252 1950 A
  7315. 1260 V
  7316. (25844)210 648 A
  7317. 1110(})S
  7318. 1350 V
  7319. (25845)210 648 A
  7320. 1440 V
  7321. (25846)210 648 A
  7322. (put_inode(rip);)630 1110 A
  7323. 1530 V
  7324. (25847)210 648 A
  7325. (return(r);)420 1110 A
  7326. 1620 V
  7327. (25848)210 648 A
  7328. 1026(})S
  7329. 1890 V
  7330. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  7331. 1980 V
  7332. (src/fs/stadir.c)630 2034 A
  7333. 2070 V
  7334. (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)3528 648 A
  7335. 2250 V
  7336. (25900)210 648 A
  7337. 1026(/*)S
  7338. (This)168 1152 A
  7339. (file)168 1362 A
  7340. (contains)336 1572 A
  7341. (the)126 1950 A
  7342. (code)168 2118 A
  7343. (for)126 2328 A
  7344. (performing)420 2496 A
  7345. (four)168 2958 A
  7346. (system)252 3168 A
  7347. (calls)210 3462 A
  7348. (relating)336 3714 A
  7349. 4092(to)S
  7350. 2340 V
  7351. (25901)210 648 A
  7352. 1068(*)S
  7353. (status)252 1152 A
  7354. (and)126 1446 A
  7355. (directories.)504 1614 A
  7356. 2430 V
  7357. (25902)210 648 A
  7358. 1068(*)S
  7359. 2520 V
  7360. (25903)210 648 A
  7361. 1068(*)S
  7362. (The)126 1152 A
  7363. (entry)210 1320 A
  7364. (points)252 1572 A
  7365. (into)168 1866 A
  7366. (this)168 2076 A
  7367. (file)168 2286 A
  7368. (are)126 2496 A
  7369. 2610 V
  7370. (25904)210 648 A
  7371. 1068(*)S
  7372. (do_chdir:)378 1236 A
  7373. (perform)294 1698 A
  7374. (the)126 2034 A
  7375. (CHDIR)210 2202 A
  7376. (system)252 2454 A
  7377. (call)168 2748 A
  7378. 2700 V
  7379. (25905)210 648 A
  7380. 1068(*)S
  7381. (do_chroot:)420 1236 A
  7382. (perform)294 1698 A
  7383. (the)126 2034 A
  7384. (CHROOT)252 2202 A
  7385. (system)252 2496 A
  7386. (call)168 2790 A
  7387. 2790 V
  7388. (25906)210 648 A
  7389. 1068(*)S
  7390. (do_stat:)336 1236 A
  7391. (perform)294 1698 A
  7392. (the)126 2034 A
  7393. (STAT)168 2202 A
  7394. (system)252 2412 A
  7395. (call)168 2706 A
  7396. 2880 V
  7397. (25907)210 648 A
  7398. 1068(*)S
  7399. (do_fstat:)378 1236 A
  7400. (perform)294 1698 A
  7401. (the)126 2034 A
  7402. (FSTAT)210 2202 A
  7403. (system)252 2454 A
  7404. (call)168 2748 A
  7405. 2970 V
  7406. (25908)210 648 A
  7407. 1068(*/)S
  7408. 3060 V
  7409. (25909)210 648 A
  7410. 3150 V
  7411. (25910)210 648 A
  7412. (#include)336 1026 A
  7413. ("fs.h")252 1404 A
  7414. 3240 V
  7415. (25911)210 648 A
  7416. (#include)336 1026 A
  7417. (<sys/stat.h>)504 1404 A
  7418. 3330 V
  7419. (25912)210 648 A
  7420. (#include)336 1026 A
  7421. ("file.h")336 1404 A
  7422. 3420 V
  7423. (25913)210 648 A
  7424. (#include)336 1026 A
  7425. ("fproc.h")378 1404 A
  7426. 3510 V
  7427. (25914)210 648 A
  7428. (#include)336 1026 A
  7429. ("inode.h")378 1404 A
  7430. 3600 V
  7431. (25915)210 648 A
  7432. (#include)336 1026 A
  7433. ("param.h")378 1404 A
  7434. 3690 V
  7435. (25916)210 648 A
  7436. 3780 V
  7437. (25917)210 648 A
  7438. (FORWARD)294 1026 A
  7439. (_PROTOTYPE()462 1362 A
  7440. (int)126 1866 A
  7441. (change,)294 2034 A
  7442. ((struct)294 2370 A
  7443. (inode)210 2706 A
  7444. (**iip,)252 2958 A
  7445. (char)168 3252 A
  7446. (*name_ptr,)420 3462 A
  7447. (int)126 3924 A
  7448. (len));)252 4092 A
  7449. 3870 V
  7450. (25918)210 648 A
  7451. (FORWARD)294 1026 A
  7452. (_PROTOTYPE()462 1362 A
  7453. (int)126 1866 A
  7454. (stat_inode,)462 2034 A
  7455. ((struct)294 2538 A
  7456. (inode)210 2874 A
  7457. (*rip,)210 3126 A
  7458. (struct)252 3378 A
  7459. (filp)168 3672 A
  7460. (*fil_ptr,)378 3882 A
  7461. 3960 V
  7462. (25919)210 648 A
  7463. (char)168 2034 A
  7464. (*user_addr))462 2244 A
  7465. 4050();)S
  7466. 4050 V
  7467. (25920)210 648 A
  7468. 4140 V
  7469. (25921)210 648 A
  7470. (/*===========================================================================*)3276 1026 A
  7471. 4230 V
  7472. (25922)210 648 A
  7473. 1068(*)S
  7474. (do_chdir)336 2370 A
  7475. 4260(*)S
  7476. 4320 V
  7477. (25923)210 648 A
  7478. (*===========================================================================*/)3276 1068 A
  7479. 4410 V
  7480. (25924)210 648 A
  7481. (PUBLIC)252 1026 A
  7482. (int)126 1320 A
  7483. (do_chdir())420 1488 A
  7484. 4500 V
  7485. (25925)210 648 A
  7486. 1026({)S
  7487. 4590 V
  7488. (25926)210 648 A
  7489. 1026(/*)S
  7490. (Change)252 1152 A
  7491. (directory.)420 1446 A
  7492. (This)168 1950 A
  7493. (function)336 2160 A
  7494. 2538(is)S
  7495. (also)168 2706 A
  7496. (called)252 2916 A
  7497. 3210(by)S
  7498. 3336(MM)S
  7499. 3462(to)S
  7500. (simulate)336 3588 A
  7501. 3966(a)S
  7502. (chdir)210 4050 A
  7503. 4680 V
  7504. (25927)210 648 A
  7505. 1068(*)S
  7506. 1152(in)S
  7507. (order)210 1278 A
  7508. 1530(to)S
  7509. 1656(do)S
  7510. (EXEC,)210 1782 A
  7511. (etc.)168 2034 A
  7512. 2286(It)S
  7513. (also)168 2412 A
  7514. (changes)294 2622 A
  7515. (the)126 2958 A
  7516. (root)168 3126 A
  7517. (directory,)420 3336 A
  7518. (the)126 3798 A
  7519. (uids)168 3966 A
  7520. (and)126 4176 A
  7521. 4770 V
  7522. (25928)210 648 A
  7523. 1068(*)S
  7524. (gids,)210 1152 A
  7525. (and)126 1404 A
  7526. (the)126 1572 A
  7527. (umask.)252 1740 A
  7528. 4860 V
  7529. (25929)210 648 A
  7530. 1068(*/)S
  7531. 4950 V
  7532. (25930)210 648 A
  7533. 5040 V
  7534. (25931)210 648 A
  7535. (int)126 1110 A
  7536. 1278(r;)S
  7537. 5130 V
  7538. (25932)210 648 A
  7539. (register)336 1110 A
  7540. (struct)252 1488 A
  7541. (fproc)210 1782 A
  7542. (*rfp;)210 2034 A
  7543. 5220 V
  7544. (25933)210 648 A
  7545. 5310 V
  7546. (25934)210 648 A
  7547. 1110(if)S
  7548. ((who)168 1236 A
  7549. 1446(==)S
  7550. (MM_PROC_NR))462 1572 A
  7551. 2076({)S
  7552. 5400 V
  7553. (25935)210 648 A
  7554. (rfp)126 1362 A
  7555. 1530(=)S
  7556. (&fproc[slot1];)588 1614 A
  7557. 5490 V
  7558. (25936)210 648 A
  7559. (put_inode(fp->fp_rootdir);)1092 1362 A
  7560. 5580 V
  7561. (25937)210 648 A
  7562. (dup_inode(fp->fp_rootdir)1008 1362 A
  7563. 2412(=)S
  7564. (rfp->fp_rootdir);)714 2496 A
  7565. 5670 V
  7566. (25938)210 648 A
  7567. (put_inode(fp->fp_workdir);)1092 1362 A
  7568. 5760 V
  7569. (25939)210 648 A
  7570. (dup_inode(fp->fp_workdir)1008 1362 A
  7571. 2412(=)S
  7572. (rfp->fp_workdir);)714 2496 A
  7573. 5850 V
  7574. (25940)210 648 A
  7575. 5940 V
  7576. (25941)210 648 A
  7577. 1362(/*)S
  7578. 1488(MM)S
  7579. (uses)168 1614 A
  7580. (access())336 1824 A
  7581. 2202(to)S
  7582. (check)210 2328 A
  7583. (permissions.)504 2580 A
  7584. 3168(To)S
  7585. (make)168 3294 A
  7586. (this)168 3504 A
  7587. (work,)210 3714 A
  7588. (pretend)294 3966 A
  7589. 6030 V
  7590. (25942)210 648 A
  7591. 1404(*)S
  7592. (that)168 1488 A
  7593. (the)126 1698 A
  7594. (user's)252 1866 A
  7595. (real)168 2160 A
  7596. (ids)126 2370 A
  7597. (are)126 2538 A
  7598. (the)126 2706 A
  7599. (same)168 2874 A
  7600. 3084(as)S
  7601. (the)126 3210 A
  7602. (user's)252 3378 A
  7603. (effective)378 3672 A
  7604. (ids.)168 4092 A
  7605. 6120 V
  7606. (25943)210 648 A
  7607. 1404(*)S
  7608. 1488(FS)S
  7609. (calls)210 1614 A
  7610. (other)210 1866 A
  7611. (than)168 2118 A
  7612. (access())336 2328 A
  7613. 2706(do)S
  7614. (not)126 2832 A
  7615. (use)126 3000 A
  7616. (the)126 3168 A
  7617. (real)168 3336 A
  7618. (ids,)168 3546 A
  7619. 3756(so)S
  7620. (are)126 3882 A
  7621. (not)126 4050 A
  7622. 6210 V
  7623. (25944)210 648 A
  7624. 1404(*)S
  7625. (affected.)378 1488 A
  7626. 8418 V
  7627. EP
  7628. %%Page: 358 358
  7629. BP
  7630. /slant 0 def
  7631. /height 0 def
  7632. 630 V
  7633. 12 B
  7634. (358)180 648 A
  7635. 11 R
  7636. 2123(File:)S
  7637. 2356(src/fs/stadir.c)S
  7638. 10 R
  7639. 3402(MINIX)S
  7640. 3730(SOURCE)S
  7641. 4153(CODE)S
  7642. 900 V
  7643. 7 LST
  7644. (25945)210 648 A
  7645. 1404(*/)S
  7646. 990 V
  7647. (25946)210 648 A
  7648. (fp->fp_realuid)588 1362 A
  7649. 1992(=)S
  7650. 1080 V
  7651. (25947)210 648 A
  7652. (fp->fp_effuid)546 1362 A
  7653. 1950(=)S
  7654. (rfp->fp_effuid;)630 2034 A
  7655. 1170 V
  7656. (25948)210 648 A
  7657. (fp->fp_realgid)588 1362 A
  7658. 1992(=)S
  7659. 1260 V
  7660. (25949)210 648 A
  7661. (fp->fp_effgid)546 1362 A
  7662. 1950(=)S
  7663. (rfp->fp_effgid;)630 2034 A
  7664. 1350 V
  7665. (25950)210 648 A
  7666. (fp->fp_umask)504 1362 A
  7667. 1908(=)S
  7668. (rfp->fp_umask;)588 1992 A
  7669. 1440 V
  7670. (25951)210 648 A
  7671. (return(OK);)462 1362 A
  7672. 1530 V
  7673. (25952)210 648 A
  7674. 1110(})S
  7675. 1620 V
  7676. (25953)210 648 A
  7677. 1710 V
  7678. (25954)210 648 A
  7679. 1110(/*)S
  7680. (Perform)294 1236 A
  7681. (the)126 1572 A
  7682. (chdir(name))462 1740 A
  7683. (system)252 2244 A
  7684. (call.)210 2538 A
  7685. 2790(*/)S
  7686. 1800 V
  7687. (25955)210 648 A
  7688. 1110(r)S
  7689. 1194(=)S
  7690. (change(&fp->fp_workdir,)966 1278 A
  7691. (name,)210 2286 A
  7692. (name_length);)546 2538 A
  7693. 1890 V
  7694. (25956)210 648 A
  7695. (return(r);)420 1110 A
  7696. 1980 V
  7697. (25957)210 648 A
  7698. 1026(})S
  7699. 2250 V
  7700. (25960)210 648 A
  7701. (/*===========================================================================*)3276 1026 A
  7702. 2340 V
  7703. (25961)210 648 A
  7704. 1068(*)S
  7705. (do_chroot)378 2370 A
  7706. 4260(*)S
  7707. 2430 V
  7708. (25962)210 648 A
  7709. (*===========================================================================*/)3276 1068 A
  7710. 2520 V
  7711. (25963)210 648 A
  7712. (PUBLIC)252 1026 A
  7713. (int)126 1320 A
  7714. (do_chroot())462 1488 A
  7715. 2610 V
  7716. (25964)210 648 A
  7717. 1026({)S
  7718. 2700 V
  7719. (25965)210 648 A
  7720. 1026(/*)S
  7721. (Perform)294 1152 A
  7722. (the)126 1488 A
  7723. (chroot(name))504 1656 A
  7724. (system)252 2202 A
  7725. (call.)210 2496 A
  7726. 2748(*/)S
  7727. 2790 V
  7728. (25966)210 648 A
  7729. 2880 V
  7730. (25967)210 648 A
  7731. (register)336 1110 A
  7732. (int)126 1488 A
  7733. 1656(r;)S
  7734. 2970 V
  7735. (25968)210 648 A
  7736. 3060 V
  7737. (25969)210 648 A
  7738. 1110(if)S
  7739. ((!super_user))546 1236 A
  7740. (return(EPERM);)588 1824 A
  7741. 2706(/*)S
  7742. (only)168 2832 A
  7743. 3042(su)S
  7744. (may)126 3168 A
  7745. (chroot())336 3336 A
  7746. 3714(*/)S
  7747. 3150 V
  7748. (25970)210 648 A
  7749. 1110(r)S
  7750. 1194(=)S
  7751. (change(&fp->fp_rootdir,)966 1278 A
  7752. (name,)210 2286 A
  7753. (name_length);)546 2538 A
  7754. 3240 V
  7755. (25971)210 648 A
  7756. (return(r);)420 1110 A
  7757. 3330 V
  7758. (25972)210 648 A
  7759. 1026(})S
  7760. 3600 V
  7761. (25975)210 648 A
  7762. (/*===========================================================================*)3276 1026 A
  7763. 3690 V
  7764. (25976)210 648 A
  7765. 1068(*)S
  7766. (change)252 2370 A
  7767. 4260(*)S
  7768. 3780 V
  7769. (25977)210 648 A
  7770. (*===========================================================================*/)3276 1068 A
  7771. 3870 V
  7772. (25978)210 648 A
  7773. (PRIVATE)294 1026 A
  7774. (int)126 1362 A
  7775. (change(iip,)462 1530 A
  7776. (name_ptr,)378 2034 A
  7777. (len))168 2454 A
  7778. 3960 V
  7779. (25979)210 648 A
  7780. (struct)252 1026 A
  7781. (inode)210 1320 A
  7782. (**iip;)252 1572 A
  7783. 2370(/*)S
  7784. (pointer)294 2496 A
  7785. 2832(to)S
  7786. (the)126 2958 A
  7787. (inode)210 3126 A
  7788. (pointer)294 3378 A
  7789. (for)126 3714 A
  7790. (the)126 3882 A
  7791. (dir)126 4050 A
  7792. 4218(*/)S
  7793. 4050 V
  7794. (25980)210 648 A
  7795. (char)168 1026 A
  7796. (*name_ptr;)420 1236 A
  7797. 2370(/*)S
  7798. (pointer)294 2496 A
  7799. 2832(to)S
  7800. (the)126 2958 A
  7801. (directory)378 3126 A
  7802. (name)168 3546 A
  7803. 3756(to)S
  7804. (change)252 3882 A
  7805. 4176(to)S
  7806. 4302(*/)S
  7807. 4140 V
  7808. (25981)210 648 A
  7809. (int)126 1026 A
  7810. (len;)168 1194 A
  7811. 2370(/*)S
  7812. (length)252 2496 A
  7813. 2790(of)S
  7814. (the)126 2916 A
  7815. (directory)378 3084 A
  7816. (name)168 3504 A
  7817. (string)252 3714 A
  7818. 4008(*/)S
  7819. 4230 V
  7820. (25982)210 648 A
  7821. 1026({)S
  7822. 4320 V
  7823. (25983)210 648 A
  7824. 1026(/*)S
  7825. 1152(Do)S
  7826. (the)126 1278 A
  7827. (actual)252 1446 A
  7828. (work)168 1740 A
  7829. (for)126 1950 A
  7830. (chdir())294 2118 A
  7831. (and)126 2454 A
  7832. (chroot().)378 2622 A
  7833. 3042(*/)S
  7834. 4410 V
  7835. (25984)210 648 A
  7836. 4500 V
  7837. (25985)210 648 A
  7838. (struct)252 1110 A
  7839. (inode)210 1404 A
  7840. (*rip;)210 1656 A
  7841. 4590 V
  7842. (25986)210 648 A
  7843. (register)336 1110 A
  7844. (int)126 1488 A
  7845. 1656(r;)S
  7846. 4680 V
  7847. (25987)210 648 A
  7848. 4770 V
  7849. (25988)210 648 A
  7850. 1110(/*)S
  7851. (Try)126 1236 A
  7852. 1404(to)S
  7853. (open)168 1530 A
  7854. (the)126 1740 A
  7855. (new)126 1908 A
  7856. (directory.)420 2076 A
  7857. 2538(*/)S
  7858. 4860 V
  7859. (25989)210 648 A
  7860. 1110(if)S
  7861. ((fetch_name(name_ptr,)882 1236 A
  7862. (len,)168 2160 A
  7863. (M3))126 2370 A
  7864. 2538(!=)S
  7865. (OK))126 2664 A
  7866. (return(err_code);)714 2832 A
  7867. 4950 V
  7868. (25990)210 648 A
  7869. 1110(if)S
  7870. 1236(()S
  7871. ((rip)168 1320 A
  7872. 1530(=)S
  7873. (eat_path(user_path)))840 1614 A
  7874. 2496(==)S
  7875. (NIL_INODE))420 2622 A
  7876. (return(err_code);)714 3084 A
  7877. 5040 V
  7878. (25991)210 648 A
  7879. 5130 V
  7880. (25992)210 648 A
  7881. 1110(/*)S
  7882. 1236(It)S
  7883. (must)168 1362 A
  7884. 1572(be)S
  7885. 1698(a)S
  7886. (directory)378 1782 A
  7887. (and)126 2202 A
  7888. (also)168 2370 A
  7889. 2580(be)S
  7890. (searchable.)462 2706 A
  7891. 3210(*/)S
  7892. 5220 V
  7893. (25993)210 648 A
  7894. 1110(if)S
  7895. 1236(()S
  7896. ((rip->i_mode)504 1320 A
  7897. 1866(&)S
  7898. (I_TYPE))294 1950 A
  7899. 2286(!=)S
  7900. (I_DIRECTORY))504 2412 A
  7901. 5310 V
  7902. (25994)210 648 A
  7903. 1362(r)S
  7904. 1446(=)S
  7905. (ENOTDIR;)336 1530 A
  7906. 5400 V
  7907. (25995)210 648 A
  7908. (else)168 1110 A
  7909. 5490 V
  7910. (25996)210 648 A
  7911. 1362(r)S
  7912. 1446(=)S
  7913. (forbidden(rip,)588 1530 A
  7914. (X_BIT);)294 2160 A
  7915. 2706(/*)S
  7916. (check)210 2832 A
  7917. 3084(if)S
  7918. (dir)126 3210 A
  7919. 3378(is)S
  7920. (searchable)420 3504 A
  7921. 3966(*/)S
  7922. 5580 V
  7923. (25997)210 648 A
  7924. 5670 V
  7925. (25998)210 648 A
  7926. 1110(/*)S
  7927. 1236(If)S
  7928. (error,)252 1362 A
  7929. (return)252 1656 A
  7930. (inode.)252 1950 A
  7931. 2244(*/)S
  7932. 5760 V
  7933. (25999)210 648 A
  7934. 1110(if)S
  7935. 1236((r)S
  7936. 1362(!=)S
  7937. (OK))126 1488 A
  7938. 1656({)S
  7939. 5850 V
  7940. (26000)210 648 A
  7941. (put_inode(rip);)630 1362 A
  7942. 5940 V
  7943. (26001)210 648 A
  7944. (return(r);)420 1362 A
  7945. 6030 V
  7946. (26002)210 648 A
  7947. 1110(})S
  7948. 6120 V
  7949. (26003)210 648 A
  7950. 6210 V
  7951. (26004)210 648 A
  7952. 1110(/*)S
  7953. (Everything)420 1236 A
  7954. 1698(is)S
  7955. (OK.)126 1824 A
  7956. (Make)168 2034 A
  7957. (the)126 2244 A
  7958. (change.)294 2412 A
  7959. 2748(*/)S
  7960. 8418 V
  7961. EP
  7962. %%Page: 359 359
  7963. BP
  7964. /slant 0 def
  7965. /height 0 def
  7966. 630 V
  7967. 10 R
  7968. 648(MINIX)S
  7969. 976(SOURCE)S
  7970. 1399(CODE)S
  7971. 11 R
  7972. 2123(File:)S
  7973. 2356(src/fs/stadir.c)S
  7974. 12 B
  7975. (359)180 4248 A
  7976. 900 V
  7977. 7 LST
  7978. (26005)210 648 A
  7979. (put_inode(*iip);)672 1110 A
  7980. 2370(/*)S
  7981. (release)294 2496 A
  7982. (the)126 2832 A
  7983. (old)126 3000 A
  7984. (directory)378 3168 A
  7985. 3588(*/)S
  7986. 990 V
  7987. (26006)210 648 A
  7988. (*iip)168 1110 A
  7989. 1320(=)S
  7990. (rip;)168 1404 A
  7991. 2370(/*)S
  7992. (acquire)294 2496 A
  7993. (the)126 2832 A
  7994. (new)126 3000 A
  7995. (one)126 3168 A
  7996. 3336(*/)S
  7997. 1080 V
  7998. (26007)210 648 A
  7999. (return(OK);)462 1110 A
  8000. 1170 V
  8001. (26008)210 648 A
  8002. 1026(})S
  8003. 1440 V
  8004. (26011)210 648 A
  8005. (/*===========================================================================*)3276 1026 A
  8006. 1530 V
  8007. (26012)210 648 A
  8008. 1068(*)S
  8009. (do_stat)294 2370 A
  8010. 4260(*)S
  8011. 1620 V
  8012. (26013)210 648 A
  8013. (*===========================================================================*/)3276 1068 A
  8014. 1710 V
  8015. (26014)210 648 A
  8016. (PUBLIC)252 1026 A
  8017. (int)126 1320 A
  8018. (do_stat())378 1488 A
  8019. 1800 V
  8020. (26015)210 648 A
  8021. 1026({)S
  8022. 1890 V
  8023. (26016)210 648 A
  8024. 1026(/*)S
  8025. (Perform)294 1152 A
  8026. (the)126 1488 A
  8027. (stat(name,)420 1656 A
  8028. (buf))168 2118 A
  8029. (system)252 2328 A
  8030. (call.)210 2622 A
  8031. 2874(*/)S
  8032. 1980 V
  8033. (26017)210 648 A
  8034. 2070 V
  8035. (26018)210 648 A
  8036. (register)336 1110 A
  8037. (struct)252 1488 A
  8038. (inode)210 1782 A
  8039. (*rip;)210 2034 A
  8040. 2160 V
  8041. (26019)210 648 A
  8042. (register)336 1110 A
  8043. (int)126 1488 A
  8044. 1656(r;)S
  8045. 2250 V
  8046. (26020)210 648 A
  8047. 2340 V
  8048. (26021)210 648 A
  8049. 1110(/*)S
  8050. (Both)168 1236 A
  8051. (stat())252 1446 A
  8052. (and)126 1740 A
  8053. (fstat())294 1908 A
  8054. (use)126 2244 A
  8055. (the)126 2412 A
  8056. (same)168 2580 A
  8057. (routine)294 2790 A
  8058. 3126(to)S
  8059. 3252(do)S
  8060. (the)126 3378 A
  8061. (real)168 3546 A
  8062. (work.)210 3756 A
  8063. (That)168 4050 A
  8064. 2430 V
  8065. (26022)210 648 A
  8066. 1152(*)S
  8067. (routine)294 1236 A
  8068. (expects)294 1572 A
  8069. 1908(an)S
  8070. (inode,)252 2034 A
  8071. 2328(so)S
  8072. (acquire)294 2454 A
  8073. 2790(it)S
  8074. (temporarily.)504 2916 A
  8075. 2520 V
  8076. (26023)210 648 A