patch for 2.1.90 files access

Bill Hawes (whawes@star.net)
Mon, 23 Mar 1998 12:13:52 -0500


This is a multi-part message in MIME format.
--------------A50F0F88262D554C2A1C02F8
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

The attached patch adds wrappers for the remaining accesses to files->fd[],
except for some arch-specific code. The changes are mostly straightforward
replacements of current->files->fd[] with fget() or fcheck() as appropriate.

To handle the references to non-current tasks (mostly in /proc, but also in
tty_io.c for SAK handling), I've added an fcheck_task() wrapper in file.h.

In sys_poll I added a sanity check for the value of nfds; otherwise, it appears
that passing a suitably large value will result in trashing memory. (When nfds *
sizeof poll structure wraps around.)

Once these changes are in place, the next step is to provide variable-sized fd
arrays, which should bring significantly reduced memory consumption as well as a
speed-up of forking and other operations that loop over fds.

Regards,
Bill
--------------A50F0F88262D554C2A1C02F8
Content-Type: application/x-gzip; name="fd_files90-patch.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="fd_files90-patch.gz"

H4sICHmhFjUAA2ZkX2ZpbGVzOTAtcGF0Y2gAzDxtU9tIk5/Nr5jkqSI2ko0lXgx2YJeAyXEB
wxmyyT57WyphjUFgSzpJDnCb/Pfr7pmRRrJsnH2u6i5VsaTRTE9PT79Pi2azySZ+MHtu2i2r
td/e9IPRZObxTWrcHPsT3rpvhROvdj0L2IUbM9tmltXdane39pi1v7+3ZhjG6yBqF6EcvoXD
rU53yxLDf/2VNfdNa4sZ+6a9y379dY3x55THAfsW+h7zg4THqYNQnHHMeT1J49koZdjANvC3
0Vtja2xzY81gG+z4no8e2dM9T+95zOCHJREf+WOfeyx1k0d27ybUPPZYGPGgxa4BXU5N+J6A
TN0XFoQp9P3GmUtTJY6Y12RPnE1nScpSDj/jMGZR85B6sDcHbPD5/LyFMDbXDLkKPwA6ABo6
2mw8QjwdnFEtCO/lJGwjMtksSPy7gCMFYJjXWDP+WjNqJTB4EbP21gx47Y9ZPcNnfR1X+T5D
sHk4dZ+dsZcArFpNjs1fjr0/xt6fAKcW83QGmGM7PP5AyEBe9gp5YS4krhsQYWl0CwdtZhu6
hBT1ueWyv9bYsuWytSYtl5Y4GDqXV/1BQ5KA2kazOOZBOr94li2+3EWRgBVJwH6sNctyMk42
+TMftUYLhGN3gXBk4wpj9rqW3UXRUBJhbe2ZVpsZeN0nodjcYIPWhxbrxzEwncAvEax4y2G5
baI0Ug/J73iwrvhFMZd4AhKKG5P6TUOPE52BkET0Xk5xP4CX0F9cD+S45qHnUEtvfm96EgxH
/JCLBExTNYCM1ugWoDX7Z4PfjnATabveEMzmoe+EEfv+nenPMCUfu7OJVAFhBBtIBNrdMjtA
n10bLkifWo1g0RS0x7XaXZiGLJzR0Agnq8FG1mrVuw5ojXskGLjGJHUnkzqiP27QSO+Op3VB
BWr4oTEJEI5Q2t8xrT3AaX/btNsCKejyzZ0gbE+tlpizTSgqBJF2r7CkoTqMEREQkJ4Ovdkf
XPa/9o+zObAvyj9cAYbkBr0FKF14ah7G3PUaJHU1VGv18TTF6cJ46qYJ6zF8Fr8H+Ns8DECs
5QDa7PrGOGjU4a6hekxC13OS+4l/28s26A10EtszCoMURIMT1WuKv6/vw9nEY7OEC9bCvQDM
WDhGDYM8Dp1zsgaKFgK6fPEmJ4mc7BaW9yh5AHcP6BnN0royILXkJXFGkzDhEh7sSheaZ8Ek
BEX9COqLT+oNsdHb+xby3vZ+znuZ+pqEwR1LOBgKX/B8zQc0H0BCHGdwevLh7OYad5uQ9dnh
ga668sYKlaWtAMCzrA8h7YSBQ2oFeju3fpr88UBqrPZaJ4DT7lVqt4RP+ChV+s1NSVexDuk3
u2st0W9qpK7hbLu73e62t3MNty1oaEkSAoGSCefR5pP7yGcRm/LRvRv4yZQ9hfFjQpaEet08
hewbB2ZO/GkE/BHF4Yh7s5gnJovCycR5cv203gA7BCYJHAb1PAW4DIQardZaEwAh3BYrjPHJ
fAkz1RzPglHqg9sCCsgXlom9Fz5NAjbLa90fmuQu/AuAcAzBwZWh8QT8BPnoFVNDE+GLgLYY
YRc/xVvX83AWIdrwjAtDODQydW8z+0vKaccGQ2LgZU/wbAB7L8SloEra+EQKoNdrkHEoavoN
FMMqPUX8ljWDAk1RXd0cXX9yzgY3/eHw89XN2YfzPrE/TYCS0Qad4oNCDPBqGKBvPcPAeY2q
TtRH6ZyizAFDQ0+Qr7ov9UHx/YaPC77oX9R9EwQArEtQ2W8KfpjU57tIKzAxlmnZRLNcidVx
unWc7ho0XqMxp9KauEqlszeQOkLJ0QXZGHynjGNYDOoGXaMnH3c3GMV8ytF8OqNwBld/rIaR
60pqMcH9R6+WNp4RGNp0kyUheqleGLxL1biAi645bOgehE8t2WGTrsrECJdM0REpAq1Xl+fn
ymrXMiujNkP1OumfHn0+v3Gw9wXsvSClvbdrgntj2Hvg5FuSlsgi/ohcES90kBhFLzCAbTKV
t4ivUf9TGxGOFss2cOGaF0MEQxZblWmNfJjkfhisP+rCoGt6HPYg9HERRZgrQhzYygKRmVwc
SM4CLPKB5ofLe6IE3AnxgC5CBpq1EjZ+iZ/JySN2xuZ5X1qiOL/BCNknPCKiliebyDxl3jY6
EHXFMt4f/p8NFQJJ+UWbnvN4xnqJxtfEmNyrZsBs+oaQnsyz0aZZznv0Vg2rdnsQQSm9Ck75
NY02ScSkB7Bl75Krt2V3TFvpBjeZglZ/dO84UR49ChpdZo8ZbW8Fq+Nd6k85KAONo31TcCfu
vbwBJ1cxrl9sBnnx/1t3zzWmhBlQfCzcTE2CcFmO1BwkTQh62XstBGO1kntk4J6fgG1iCVjv
9IXRTjIwfrhE1mq1xFYDqnocIMI26nJY8IhyD9mQrq0kUOZDq2cQlufOWPzD9fMJeJDagFLn
er2g9hvyzca//dPY399vbFrtdtt48McQ2iYGkUyhPLgEIyLURIEaxlwPHV/Jq9quCJo6MjKj
CzGsaAAMF/ZtgC8JUQDlQ5wI+K3+8fTK+dQfDvrnikG3O+bWNjAo2PstWzqp+U621CT5tHIt
63knEeZAZAK7UkQHGarBHqfgi4Qj2rYNZLtwXOzUMFkBsaYMAMCjRQWB6QwYBbBp4zdYJQwK
fV7BAAeW5jLyucqR1g8Vi9JmkcpQuI3C6AXIGk4diD/iuhBU+l28yIbUxY+UnsIJSVsWZzRe
AY+QGwWOR8dfiFhmQnLulXfCzdCMVRPNlacalFUV2oV+pA6rBNoW04EAX34y0TlgiC95FzH/
JhS3zyewF7cuyDSgiatgSeSOeEtEZqhehP2ikDaM6/5BW/huFBgKQ0Z+Hq5bGLQkM2eOAzFZ
RhsMSWlak63P9GfBEysCtzJ3sgjdWgZeMH62o1ZDpNcEz0gCZ9kLRXAwLKhR3IkT8cDzg7u6
JLLwDnOVdzMkfQIKChddAgrzyN3vwow6U6mYFCelfZTBehbkaLLbqA7qIj/ifyekE+MKKavd
7pYFMZ0W0O3toLuMF5Gxqo1ttKLjiXuH4nvpfBleDs5/72VvwBijwon9FNQYzOCMwyjJX09F
6slGYlWkRXxK2VgL3lJoO7bFvmkpHbSXllQqWeMDNNq07TCyjSN9+WDhw4OWEVwQLd/6wXia
Oi5skaQvJrxP+Igxi9lb3Z3d7g7lyzuV9C0ML5C5021jQjEn8y6GzbvmrnQ6/iGz7SqiBKLN
MOF+iAaq/HKc0Ityswpn598Iw175ajrFZhFaAjaGtS0Dy3JH4O8grJ6XpKX6VRqDAOEro3oR
882+XPY8KDetfDEeBWn17FEao06T69tuW5SL3W7beJXJxggQTB/raHCcweXN2XGfvcXsykx4
TXh+gKYZQnryMv4zeNuQ/jaFInqS9jaKp5jnFKnZS2d4gnLSEOq8nDPUs47NVzPZxrxP3RC+
lNRduV+MiVfd851O3Uh52OXsGDSBccEedXR+TNYG7/O55Topf04NuvPc1DUF/Tr75jZphra5
vU30g8GUG0SGdyb+bewCGfTMv/pXFbRksR2SG360llKee1FCG0cU/O8JD+babpNkrg14KQYx
9Tzyv0sJiISiVdXBFEBZqVchPa7SLwa40eOxkzL4Fcm9di8/7MmWyV5PEzczJwv7Fbe0gfwi
uafZPzo+7l+LAZ7yBovpYpHRX5D/x3HgKVxz/oiUCfPMBDgCzVLM1TycgLHjj9LM48u6OguY
7yXDLWCpdoNCyjZhnqOuct3gWDFlRRWYKEwU+bTsuFxsRRLdyMlVDjjKElJ0z8CXGIt9FBQq
0k4/KSmiopA38ow3pvbkhrJx8otwpRJ08JO6cGidk+uGjEHmiIZ5e0my+ugezAY4xuv82VTu
NH8GP3xdo09Dxip/E5LgUZE0Fzh+vu4PBYYsP4PBjcvHFXkvp0GZntIB/QIECacYR7N7HnM6
ZxV+6N1sAoi5LXRZk/QFdjMcswSQRQEjRQIBm6AgsdnAuTj6eHaMOCBG/6QndNVKL/6Dnhoo
MgPnZnh99s8+vfr+HSChJho4J3orcjCqOXmwAsEnxJ2NMuADNaMGKDvcouDnfZXeNAbO9e8X
ajZ4uvl6c3l6SoQUIrQKKTHskGSoxEkgm4OGZ4livdD8XkP5tnmYOLcY9IuIRdgHaQvfqmEw
5MP55fEnB5fQYlcT7ia4o8E3Hqdym16ERVx9LerAd+Ccnh99vBbEqBhb7rOYy06Bq+TGm+Iw
G7U3+B2YWo15kmCWtf1st3MNhya9xZA/MVckyJXeQzeQCoyIQK9UQ1IcTD6BzMnvbNmURdqx
s9IHUHNXw8sbZ9g/OmHfGd1/GZ7d9NUDrtKkfhdHV87p2dc+9sP7q+HZb0fUEZ9O+oPfaaDo
XGChgnJUx7Mlyc3smC65mfGaU4OYCeKYYL86+th3js7PPg7qGWMzg2WsTUoCTCXOXPVe3ZP1
FUhh70O0ppL3leoqeiA5xgACOptokJt4Q8YjJ+v3nKjfNZJSJ42O3zP6oh2iRf/ExKxJt5S2
XGlHjdL0chuLCMxv2qJdE6gU7Ga+eVXS1dQCHKNwGiQDUuzaLR2bGhSRZgUj2WnSj2J6vzoU
jcPR5thbWEDRWRKNqqGlqiI8YdzRIyWsKoLfbXXCSIeFeBTg+TEfpSFo7ns38CYoqNlRm6xZ
0aMnN5luztzRCAQZg4LmTwU5KrhaPWJBLJ1FsZqKZnR4JfyMwtkKQUPTPvaKxVOmqLCCKzxP
gCQOWfXy0EkYPs6ifLD0pLOTGeVzU3hDdN8xrX0g/K6qgvhL94IpaR2EJot8rK6A/yPNTS9U
QbFIc+2TWcRjYXowVXirOcjFI42Sx5/Vq4D5SVIm/JrAnXJVsEJuuqFuZXKdFdK5/cFN5g8C
nUqOIkMfENWCH6ONhAdsg+VhHgHeHB4ya1d1W8c8dRv+iTx1UwNaMoUDykomtzlkWrTKOiF8
cEMQJkg+aJJj5+rsxDk9Ia//2jm7Pjkb1uVIKvWpnKG4Ekp6qHMvodBzfxaJ1iJq4S7v7eDJ
h7HXyWpdnu5xH+rQA8T9EHSWcA5GeACKY0Envmu/I62Fj4aRFUKMoPu+OtISCDyPFYGyyodm
jRKp2oiCMuvJ2HrjgFlt9WAcIHs1syhaOmpj3IGfmrA8dm5q4WyhnDnIo/V1ZOWJn6T02NCC
D3l4UovI/Q48KgN0bl8c2NI6/CeviACJ6pM5UOS7nH296L95w27Q+UhEzcwtHfqCRxxMXpg7
TnlMaYhZgvrtXfSOucELm4axFqMpNnoTLeAOqijUCwb10sUIBVi6E4vRle4WOksbtVOEQkqX
zrD9ACwGlnmO8UAa/agZRsEsdoM7CEOgmZwmrPFIEpFtau+Zu1gZh1dxlIxwYSjSlR5Ie2fF
VnmNTQ188CY5uG9U2WOtok1F00te5YHeErLNx+BqSEno8lDwy72LZadRxIMEF4/oM3tn5xcZ
FApFg0zC3r8HrdIAO1/XZN8Bmcc3e/iCMkRaDE/aHM+NqKGe3JpCEdNRaqaK6GW1MsJUAXoX
9byKEPv2Ss7DgvkyJVacVtBKQBJ5+uo5DJUppzl+lH0PobXJ8fiHqLOBCS4+fD4FZYDssIpB
xEuEnqCwi+Ql0LmrMo/qDnZwdXjsdWikiMgy3c7Gfwi8/9QMnG7KRMweVacaFphRk21sgGsY
uy9Rr2yL0QKTKSa71Sylq3zzQbPBq+JRzm7NL62UFPlwdHJarAYtWLEs/qywY2Jo6ajYKNUz
CbnJwPyUiWaKQUt2VkejXWVIRUWHRqcoTHqiJNvuUZ2Tqb/KCptKO1CJulRuIiMstQLhXrBv
33N8zwaX+TjBd3XFkW9brbdUeGUJhwwANUS+WQsf2r0Kk8eWm7z/DzauXjRt7Uw7l/J5Ag/E
WUqKKI4XD06UxjL/Kne1ecBsJndTmpeFeyrdj8yKNEpORuFlVo9MVnmJ3THKuLxe+F+NIUAi
vVtZbF9t7kvuPCoJQ3lKi80eK1TI0VnIA/lDqBRkzV3HpqjN6mypQjGqRdrMnLofTPqZVJ6G
k2LFSRxG2TccDDfSZOpDD8HsWXxHX3fIMGJTBNVLXBdxUvKzVneBnIEGNB5Mud7mA4mcXRY3
yRYlWcsQXSRoSAU1X4NN/bt7+f1KMuFRqmoC6XOBmDfJ6cJ6tLfRW1lTTY4eqjhlKXALsQAK
Vg2tKLNrhTLkUs4gl6Hua/6gsSRxsDBVQBrwb2cL5OjyZ0j73e2O9tFFmw4y27IkufrEc8lR
5cJgffXQnzKr1W/8qZ9WvwKZGvt36rjS3mmb9jYz7B0LryRCmfkQqVvNLKrmR1mKY7Xt7UUW
s5lZwkNpCVHtwc2Fc3o2vL5BxYNv31e+NETrQDVrWlnzApeAhk4yfw4zrDjFfKCefWiSB2IF
92KONjPfm2u7q2jDYm+sHrQKrZKsbSq6m/M3sNKuwgmRgVmJQqViuP9zu/vEpYZJQwhYPM0G
o+nN1rFoFbnFfc3vOjgo+DFSMXmzaUSlLmBhie87Iu9kd3ZNW32XUdoxGMbhTjovteTJT0f3
ku8OUX+TsR7haUVJv3dFBaxCU2UKNK5VVbFzdhve/yl0e0YGCUvjxXWRawMWEk40tPLYpYRk
qbvkqN3tUrtkXvCZT88Hn3L05nDJamvWmSXxKgL5TlCGn6+H4EHC3Ve4Ww2evQTelwp4GltU
5fKMBVthlHZiYXYCTWuv4JgUEzcZDxoS5qo7YlRviLFkP4zMKeDFHTBW3IBqAPZiAGWKMxk2
a3YafSc+BmEWTSjAM3DQJiDc72Ip8iAk97lzRU7TT5l3FZdTHExEFSVfMg1RUZ/RWOwG4H78
rQq2fHDJCbBhoF1wAvbICdhfUGG1Qqp/1cIr4VH8yxVOq50XUNLWMnfAu96zzR35FdCKMTBa
r8UmBY1RMptg4Up/OHSuboZ1mTXKk4OLkqJLwWoWRC/MqLYhmjZXqeeC9jj+ctJdy77gQTWW
ZMoatFn05EntlUdm+bro+0+tZ6/srFfoFH18PrR0BIeA1bciBXSHl5c3y/CNwzBdEWHq+jcx
xrGrotz/2u+qijEh1t+mjgsz5rmob1O3V1jUdFpcRDVmOAKGCrSmU1GdJpplOAhvVUJfVH5A
Q/MQ5hf1p+vstws6av18c/ThvE+VGlkPsgs0UkUkRD39vRbHYibU+IlpRGd0XQsTym9kNIpX
zydJUiY/Nf4gCkjKqOH4Xa4gzY9FEaVOV4IhP7IW/FblFtF01edtyxymqsSH/ilrhUtV4VOV
xs0DLvtZK/QspfBLY+bFaNHg3jz3vuKLvJYmKW23Lpw5XpU8UpbQWva1s2oUVllfm3jKzPbq
MbwqR89ieIRTHcN7sf+Nx8km5oE30/TF8cOFkby1wIZXwiiMh2De6u5opnwXy6TxHLo6nvcD
iGLiWVRdHQxTLGoHWfejnzPRePgcLniHX2DE1aPSlygrQ7Y6W9vkmnS2dtQ3vKJaq57wJMHU
Fh264ld5wLCqDYIneau+Uk04WNvEv6tfn338dIYlLMCdlsgiZV9NZSKrDknpW1z1vUWW8fTz
TxGR7WXSVC/SF6xZHF6RmPSzzzQyQGX5aRS/54vU94eR+pYAfHbaHfwjEaKYTepd2SsCFnLB
8aQ6I+gNnRvZN4SLybKQnSmZsjkJw0hy8xeIgv99NgE/Cmv+tzpd21pQ818FolzNstO1tO/l
rX36exf70i9dVve/JEE0x7GLa///1+rsFzvMU/chjLO8VaeDK7Q7++qvKuCGxPy/ZjxJ64I/
ScHFPOIuahqqaHJIDTVxm2UNrRoj/kLFwfHn4VCeyr7SgdXk7UGpY6+ETHseGfGVcwczD/SV
89ZuVvqiWc3aRlWRSk0VqRiFv6ACjxeXmPE4dj5f953jy89iFflfUVFnX3pVsxvfLS1rVmWU
0K+ctVAf81YUl0PvPxccvGnofL7+XXntkxD//IdTcZoselXVEBqVfyDm1fpq/dy6WI+KcuVQ
kbLXpWyfoPcvb36ZLz7NvkRdVkeLB5Ifzj+VDyTlGY/aO8D2dvLo8W+YMghEZzp0EWfl+t+p
qazPex0IrFESGDr4I66namNo0nuo768oWykK5play7D/sWIty6AvAH5+KSpunZNL58PF0VWx
OL+CyGqN6jRfJ0p1wS52OLuWH8f8TyNX29NGDIM/d78imrTSAmVcS6F0bFJHbxIa0KmgCQlN
J1aOqYJdq7syxF7++2zHzjnptZsEajmSXOLYjpM8jx1iACFQBd2+J3g02fA6HozGdva36i2C
MhNLSiPWbAQG3EVadw/Zs3aJRf2xzSX5rAHfLBzTXn9uhXlr7tN0XnIhYIgMj3PMZydJ4vsh
CMrUtLGIsFGC+nlFlUV+kxV4eFMeZYObf8zTxCr+9GcK8iCdq3Ak3u3NvzGe/vxge8M4cEy+
IocoUEOdmjzkSYmToEesZJsPs21DCo+Ywh/CgEfb9p3JKliELvXGpUMTQIvRgJark1HgqPIU
6WAQQUVNnNKnVDIT4AnY3a3Db09nk8UDX5kFLq3luYhw7kroApt1nlpYvO8qqRkU/9LT0CR3
yzGucEs4UeHLpL0lpRMSO728BN1UvNVVTbNJ/jxfJBilBv/SRKal8vfps74XWR9eZV8FI/wh
n1pGZRcTpnXa8PNf0RW14AVXbdxpyGmhNXzKJmY/ysjaT9Iw+X6r0jYQOAMXW2+Rh3cpfRaI
KTnNLfnqpUQjFS2IlNz0lfRTPD6TbBNt3MjgB/cOWgHhnZ2cjxQ4Bh2/OzXDErC8nw2ukvP3
w0D9R8P4M4P28Zavzr2+hl9KGyUHADBi60Fpgw/tJMen8WCcXIyOP/a5a4d06dLp7CoKg+ZG
xuOxeQkv6JsLZPRwCFWA6IjeM89n34gg0XpnJjcZgTmom6BBO0yarC2ZmqRyc97BBTocwsiz
8PDfa+vEZTuR4hhgkJNttdwqF6A26VmB8IHSZoJcYsqxKtFdxJcsuLW0TYy0bJTwr8BHsd7c
wtDy+ldn3XjcwQeIxPNGy43rOGjXCcyTakX0thSqqUsYHYd6mYLcTcW6cVVkgwNrnt5hKoIb
TFy0UWB+ERqRJI5ZGpI8XCMJLOKFIRbtG6xi/gSCl0VOU18QExRG1003iiwpjKJqS4LBcs1q
jSPL6XXIqA8lA5qTOi9FR2+Z8autaXAajy/JnsSl9w2Wx/lvvAJrxVpgNtumbMl5e/snqnYZ
tgxnaZFtLJzB2ExRYIio0gI7rVjtNSG+6sgnSxevrahXnfTs7a046dFVA7fdjrw98f7e/nYE
8Rp9iuP2UXgOB0gJUyDwgIYx95dba8ukgUdGIOFYSORLNVan9FB1vbiVaxOIk17pHQpytabd
jnkFKlyCLYyeeVVWQnUKx5hLG9CJjnAvwjFtaWH94TS6KNgD2MmCVz+AjWwv3MfqqEvtZMUe
CwJfbWbpU0HHli4rqNreOm40AUOZIneNaxU6yGQwHI6/ePSMikxDpsamjR93t0xToZSddXgF
58HpRV1c2HuRHAKynTUslpiVwqqDBWEZrUPlNLZqPKJ1EwWN0nlXWJQn3XZLuvA4T9M8wXKW
Zmdqv178Be46vdyPWQAA
--------------A50F0F88262D554C2A1C02F8--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu