This patch includes the changes to nfs client to enable the workaround for
NetApp snapshot directories, and some changes to the writeback code to eliminate
the allocation of the wb_args.
The NetApp snapshot code checks for a dentry in the snapshot namespace and
creates an anonymous inode. Non-snapshot dentries fall through and are handled
as before (we don't need to bother with a test for busy inodes for the snapshot
case.) The patch reorganizes the fhget code by moving the getattr case into
nfs_read_super.
The snapshot workaround code has a conditional compilation flag, enabled by
default now for testing. Hopefully this won't cause any problems.
The change to the writeback code moves the wb_args and wb_fattr structures into
the write request rather than allocating them. This eliminates an awkward
potential block in the wback_lock hook and increases the request size by only a
small amount. I've also changed the writeback cancel code to wake up the tasks
if the write is not already in progress.
Regards,
Bill
--------------76895F6377DEF1D9B20A36E8
Content-Type: application/x-gzip; name="nfs_81-patch.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="nfs_81-patch.gz"
H4sICK46yjQAA25mc184MS1wYXRjaAC9PGtX28iSn8Wv6GROuDa2jG2ehgkTAiZhhxgukJm5
e/YcHVlqYx1kydED8G7y37equltqyfKDyd3NSWxL6q6urq53lWKaJvO9IH0xu61O67Cz7QWO
n7p8m25uB6O4NW6Fvmt8CQN2zh3W7bJO+2h3D/6yTq93sNFoNFZCMO7shP2HHbDuLut0j7q7
R7s9nH248eEDMzs7h8191sCvzg778GGDGZaV7nQNwxjaT7bnH2+wH/BvoxEnUeokDGBaz5GX
cDt6iNn/bDQM7cFozLYMYzQ+htsKTDgaxTzR7zhhGtANJwzihD2FnovThuloxCO4D+s1Ntgv
3sjlIza4uLMG/f659df5rXX/r5v+HSDDtDVjO0kiiQztaG8Pt9Lo7HdhZ4UdKVRYGRVmKCQy
LEzAwtwwF+zarN61ObeUWV7KXLBrQWV9Y07E7XzBlbxiZeyiH3gbD7zdEQe+ml2sCo7ZbR/t
7Gsc095pHgJ56YvIO/VcK4EdPg8t+HlsGNtbLHwOeMSmUejwOGZb2zAsDWLvIeAui8dhlNDw
kW8/xMc4Pk7sJI0Z3aDhRRLntN/CefiLpgF3sNubM5gOZMR5xYNB1hAz6CdNGXk+Z3jlDdOE
02KNyqWWL9SYW2jlMnTEvwBTewFnMFjsmQiR2PFjK3mUt2D3ROmDA6I0fSGlCQh/SXgUKEaJ
0ymPrKEfOo9sC1EBpnEtulurGtKUjNdkXpDUjzNwcAX/vMQSTFDDUfDYLK7mBaHLxTqj8QNP
FixRko0mnIphMPFn/nhgmcZ6y7g8SKJZ5QoNWKHi6Es7FAQaRTweW7RIrbhisxq9eRBPtu+5
IJ1lzEqDreLo4pqkvHj0BHKSL6wBWkvkLU8K/X3KSWYZiGrnaKd31O69QugRzHJDsbeDdgI+
DyQrsiv+YPuScii3DLaZ8liyqeJz1N+Xg2vrtv/H6dXl+el932i/tNvtDqmJjDZe8EDSIuSx
MPnOuhuc3tx9vr43aGqnTVNtFgf2FHRJImSNlAbb3iLcUFyJG71gFM5TchTjvrcJ95ZToF+3
zbo7R3t7R91F9CtOLlANJnalcRZU2+k2e6wBn50uke0XSXz2qx1PtuNZnPBJa3xSfpDaDupN
epJT4+x6cHH5yUKiKIqwToHS5x8/WRenZ5dXl/f/Mgx544+Lu+Jx3Jzeng6uL09xMtp1oL5T
Ej1mWa8R8lyQN5iER2omU0hVwoayUh48TZO1x7rc52WZyoeTAu21ybnpKa41QChBTyTOFG2+
2hdsyHbdCCAZcfSEP7Wn0dSxEm/CwzQx8HtqR5P4uEr9C92PTGh8uT4Hpj+zvt71rbPrr4N7
BOiNWO0NsLpdJ+S6B7uAVaN7AJ5XW2BnPIRJyGAlKwgt9CeYsRWFYYI67j3DqeYJXh+TeaQn
YsPvmXZawybbzMc22eDr1RUeDSFARAarbMFQxLcmNFCTyXVgLu2jzt68Z+066tUCUmKPDbhf
WL7ALsMMSLbtfHC9vE+5ISMemicxXeFeLdsHRqPLWj452wwRsLeHp7vTBunqEAE1iEfol0Rw
3I+1t0WzeMQASdqu0l3g5XL3v4K3Al1gQW1FIlyGLlgOTgcDBNApcgSDVq4mpERfraHBRIQf
8XdNngRik7ECPgVO9ELXcsG1qkkS7BzuNne7QIPePtBAcNEPqQYbIMUXno8aWm4UdWE0ASGC
cGIUhROWjLnAqoWjtzNdgCK20aATBQCVEiaPY14JiIPfaGBkgFgYgMbZmIPOeB5zWDCiVScI
ZGzHbMg5mH0ObAoXz5yFgT9jzzbYziQUk90QZngxPHF4i9X+5HAn+EfCkEGeBToxDGbO2A4e
OEtmUx636jR3WzI9DTJPPIuWfY+MTZGLUXogiGGe4NUxPYfJaIFu+5+KQOokGfn8cAqzNyXF
pE6CmzwiapO+MLgfwxlIiOeXt+tCdL1oDYBXg9/XBRjPJmDQHtcAevZ5DktBuDJYZxy5/Kka
Yj4Wx8DoJLQecXRSk/TG+yRoxg9WWP/j1dymqtcf+o//F+tfXF5cL6AquMojbxTWci1BpKtA
DlUWPSdxQJa+AQcUtAIKQuz9N4QJgcsmaFxIClBI+D9iFoQs4NyVc4DDvUA5kjTVsZ0xsLp4
vs0K/Exgc4bGy+Miw+NyGsfjZSvmEJu6gmroKFxfnX+5v/zSl5tcMvwH/Jt3rqWSULag8QP1
pvTQ7lGmUazTCINFBkYoRsUUjpj3QMQBv8oPw8eYpVMl5sOZ8PVA1F2fExwPgmnQtjSPVFOQ
ToY8ajEGmiKNuVAeCXfGgfct5fr4NAavk4AgOZ9GMct9FTZKA4c05ZA7toADx4IYw7k82zM8
kKkd03ERDA0xFkbMSaMIfHk9BAT7ENJSFcu0EAbpbEAbDPSTBw/BxZ1yxwMv2yENCuqbDXhy
Op2yVub8gnrgThJGnlCDtlDeRBlcADjGxn0i0KHPJ3GLnYJRyKZLytoRsmEYzCYhhOG1NADl
POZuPbcMuvaXxqEqNhPfcxHaSFBGBmor7EaVwxkP0S0g4OYJGNeh8EJcZXaBX480L+hdvP0u
pjPx3Pfv3DoYXFo7hwCOHPzGX4ENzIwfTW2B/CZOk3wv4NXF0hCDXAIzgR0ShhSeyeMHi4t3
FEnQDG3VaiWK1LXFRjH5hbBDRShaQqbAKvz+OeOqsUbOGQgf2KJJCgaFCsIUMUmdrzxQxTcV
3FIwpLUq8kmdkrYCiiNFCmezHLvV2ffvCAv+1OD27fX1/Ry0OtvcLB+BD/4BWOwePJLT2YRP
nMm0VnVW7G0mGG+brFcXxl4ajQoPBigOdLH4ZJrMpNKqZ5b/jXRYkWWVC3hsFPUsciXxonZT
WBnhz8Lv4kP4ketRwU80oBQqaWal5IeVlWoGu3gA39+XT4DGLpIXXR+8f+cLgWE61rQWUAB9
XSPiSRpJv1Lq/1944HojDAzEs3JIMGcFUEddgYJH/Y7iIg4EVDzJPRNyj5xbIBYpJBHjhwka
QTA5qQ9OI1lTqS5JhpCNQcsP03imtFzNsygNy05YB1SbierWS8Y09wpjfIYx/ssLc8m4oo+p
pvIXh08TgBy5mA4AszRJ40RobAXikUcB918NAzcztp+AAhI7YNoOs0cJUAFtYa3eYtdofp69
GE7ew0NyPcdGm0JmUpkgmU1CvzriYLNAnqUKxJ3jGRI9n7lYzsaQ2peEb4m8jVlS9ObyNAAe
7CJNb5KmX6LqKzMPG41VqYfymgWglJvH1BuPohDC2on9YmWZ92oFIPyzisRxwJ9lvGsiUNQI
8bCO+8oCwiEILOWI1QAZPCMWwmiQ050DAi8REZMReyES30SNIYQ4HrZUbhAERxJUCZAptBPB
IWxK6MiFfuSGVN8wJQKAPhphIF4EmY1mR5QgEUTxCmKrWT5WUI2lWF6uYGq1G5Vs2jALkRjq
yDeakoSN6AE0nf4R8ybTMI49sEQiYDalkjGF+R20PraEIwmqK/Vd8NW0KazVaonKQ2FlVMBv
Shq4uBGkImplkYXf3dltdnqssdfZbXZlokaAzUgI9FIxnRZB1tlvIMZHaqUAJf64jI1SRxks
4p0qUtDBvMNNgkJrKl0Bvg3+JuDwW7g5aromSa8CUND7mhWgCdo1TSKeEEYKMxnK6cgsGDN+
esdxgnmMMtpr7XXJ1KW7FIgLXve9WLoItU2NgdH7INeCabWHohssgEinE7hEQMKLWglQK+Av
SVMMz/1j5UxjOgwcM5SACkI9whbR2OU+r9AYSwi0dAp7vZMs1JJhgGsGkW2t7Nk2WbtJoW44
qikDURfOy/I5YoQhpxYsTV0ekQjZBeUKzk2Z4UHuiYo8/k1sk0CXXByS+L395h4VOw6aHVnj
FHlBjadJW5DaxMsfZCLAqTF/Jt9l/kS+yzRE+XNxvstcke8yl+e7zFflu8w18l0LIFbnu8oA
q/JdCwAuzneVgVbnuyrALsx3FcauyDeZa+a7KtZfmO/6ufUr811mZb5Lkq4COeVPCXF4fb7L
XJHvMmW+y1yV7zLXzneZr8t3oXNlrs53maVoS2YmXrZRJzlJlpYwi7FjMewqPla2qbEyKiwu
rfvU8wg0liJQYRmpMkE1iUIcCGeiO8VHgHqFudLDO9BzyC7Su8ujbA0QlVcqAUnHmSmPWth1
ZgrPuAiv4KEugEd5x0J9xqj2LsrjWHkh4UEuWCYFUw9xapJlX6gWg0CXrrpqWgEJLAItqnqD
fv27NW+auqpPYA/LcQ38lu1XPyQ+5QIu6ATY3OsSiKCOUCG+Pp1moolWNWTVyIH55XRaKm3B
JufaMeQPii9ZdVhFmz/YxY6dvf2eKjiLQwHGy/xBcikFiwrfUbGv2T89O+vfkTbSyKPosako
kCu2Qt1Xz43mo7VSbGPxrMrxuuNOqFZFdazSt19g8mVAVIof6rJxb7/dQ+Ltt7NqfSWdWR7e
60RjUiOXqKYTbRXNMhLkFFtMsLnB7P+PWoskm1rX/q5sy8nLpXt3H3sW4HNfdQGdhdNZ5D2M
E1Y7q+PA/Sb1pjbZtW+P2O9e5IzZr+GjF32YhIHttuLnYcvlJ7JNCEJ6rTNlUGr0zLtiRLMS
2N+R91BqmBGPhB9c9WRCrQT4iErmB13ksp2DjmyqE22Wou0P7Pm3lMeriho6Q1IcIe9PbXDI
t/CzybJuR+RW0Q1aujmcJTyWGatC/yH/xrbws9SF4vhBYmzhJxO53bOry/7gXksVrwMFOw2N
LfwUrSpFP4H+VFKEIsUmhlMN5TYQQ3Spi2W3qzWG3YGf5qbY/sgIxtAGS4/Nkw6cBOUZ2eVI
eIMiYQleAJzsAyzD3aYKd1yXkTkDVwHm+yElcwGXFFxEBCERg5AqTQgyJkbjWQCueRiEaezP
RIL3fqwV84S/Aj5nlJLXi0jQqWWxWRqgY4KpU1HaaywCMbKl57waBqKLXb+IMUR1uBFbR1WQ
KScPTbi4/OtL/4h9xqojBIoOJbiebf8xT5aD00xeFKYVkFgx53rUKbTqbrfZ2QO1uttpdoTU
kt/2DZhojIVQwUt/3l7e9z+env2uxbjPYyxp1nDsG+HWy2ikyDPvdoU5H/lpPMb6KnopTHqZ
H/Bj5MOlcnWxePDNPNGaXqeeW3pS9Ebn7iq3OJ+A9DdPlJipu1QJqVfUPRagTMmQEsaNRQjr
D5YnTBYMXTBgxVZQ3UTfxGM4u6pZrJHdzjveYRKHsIthlJTNzweSMiLPQuUBskG/Mpy4ucmy
awIlmnrhdg3IQUkG9v17jo+4B1+q+rYOTFHkE0XCNaBmGbo/P1qXg5vb60+3/bs7ZFiqJOLt
z6d/9K+uga3xZtkun/c/fv1k/dG//Xh9199gBV8dOQNCNvzCRBnxHhbGQAUCV4MeTDMduH/Q
JpcXv7s7c01YZzbIvK+UodJbLSz02/6zPYvZxI4eUXs5NBLCiiZNRMUG2/MSkHPbx+IgFrKw
NPsQ8bgQOE9D0cBN81CPIM6o7vmLlzRV1UdoVpltYiGoXoGS0nNZAzobedwXpbZtVtEWJhAt
W8vc7iCxRSm/wL+qKEnKxjo7HZz1r67656o3seIYJe+ondQ2dVFssrYQbnz8bD9yK53Sg+Kw
uixQ6t0n6kzAauQmSlmUJhuGyZhNsdaAbcmBq5OdrApZlrz84IY8RtKCAp4gaREZVdZEFGIG
HpstFHmcRpymw8MZe8b0NH8CpZDaWMV0wskU21p/Y6d+DLE3pQKF7s/Py6b5IgJVb044WUgI
vpvkFlNBcwkLWeLTG2k3mHacEPgks+o+P3rFg+ROcPzhjuD43p70on7apqhyTt7pgihnfA8u
oocNC7+JLCfxywoNITNn63EgjVzCZZgrU1psxbqkzSukBPk5i6pqglrA8YP+X/eS198L8lE1
yhjCxh9FbhlJftA+RL/1oHOg9TLD8nHqox1oN6X2wN8LPTtSZ+KcyWLEKhmE9MYtgG6Dy23V
ACCM7LLckGxzMk9yI65Ml8+D+lxjxNL5rDiVyZgKexiuL+5RpaP7bKOGrCkDMMe/OcfKdP7B
fhc9n8YBqum9QmRZ0FhNtoXUP9ZfVfLBLc3MrQgyK8gKwAIsx1dQljzmNWkpVqnI3i1ZxC0t
soLc2RI/KbB/zwlRzJ9NPXmvMPq3CusqAdSy3otcoSJqTENNPFZPmck09jCksB7udJoQPzcO
tdcq57am7Q09FNwYM3AT5kluiKU0i7qOAkEvwmllHUx3Wwl9YePRXLEse6Wtnr+J1agYp3UY
oHEwtqaq+UHY59qU+hkeRURdQwBN9unixvq9fzvoX9XrpXaEIMyaI4wi7qwSPcziTWWbREYu
2UQxhycOLlKkwTp1mZwHSoJBuYNQLTfCKnpHXadHphQ7klXRoZkn9NIFntHFZ5n1IejFQZkM
rOD98jyR+9FkJ3PAi+PE66G4f/HeHuwZV7LwLRVwRuiiPrceyYAOqAWbEb5/eUOlcevupzRt
0XZKw/72buh9F8yBwFlhii+d1oS4w3bAYTwTcpSHS7iaFjwhvyjVsA6YzSKczQpArEqkc4nO
/djjrEwizNHh3iH5Tod7uypBngm9fNEICNQFB+/zfx6L1z6s2Od8aoVBbVMkZSgN0mQSd9DJ
2Ysx+VqmJoF6JYIsCmhGWVJ2mNgjLQHurirFVOCE+JivxMfM8MliIiLCYRvTRocHnSxRni1I
nsCakTVbHlhL53g+jGZUrUcFQepBWpjrLzdX/fs+vc3YpPDL59golx8mlu5FO+z6s8sMoWAs
5R8FTeWVpTn4Veh8RsVVImSvS4Q8zJLmmI3UTIdhOIBGZA3BVN58gggpCbGiCkwtJDyjiG4V
MRLL7G0WiJlVb9gq/VwQkWOt3bZi7GZpMG2HfZ1SqVdrmKc+RnJww1GusFvkR4B8fOTPwBNH
mPIK2NfzGxg89T1qZo88IDxyLUwMIxfb6J65nDaxZ5R9ANOgQioK8yDC409eiOwy9B4eQE9R
Sz9auRbRutc9IMntdQ6V5K5NXKTqXDpC+a8iX0juk1CBecehrojkGci3xPQHVRa2LUwhI1NI
PWtsgA0kmE2I7RE1fUd8AiSQ7ySQk5S/GKYyjAurDfCv++KqWuL8/1Gxu+D/qChPX1FxaO9j
3INfPRVpGtQUzoIkHPu1rWmjocVVUzAf//x6en7VH9QwjIDLnTo7wRNXTqbUhOi0WIPr+8uz
vvDNhWqk/50AzJ/zyDEKppc1wOUm5pq9USXaIpQ/T28Hl4NPTIdQnMfeilamt0FEHXexHyYx
/QIks2Y2HBEAr9aQP002rWehkB4Q4qmK3SIdTkhrfDn9a3D6BTaNm/xfCvDnFVlEAAA=
--------------76895F6377DEF1D9B20A36E8--