[OpenAFS-devel] directory trashing

Chaskiel M Grundman cg2v@andrew.cmu.edu
Tue, 18 Jan 2005 23:49:17 -0500


--==========EBC05448BF4B092D7873==========
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

--On Thursday, January 13, 2005 17:09:31 -0500 Jim Rees <rees@umich.edu>
wrote:

> Here's something that bothers me.  The old struct buffer used to carry
> around an inode number, which is always good as long as the file is still
> there. The new struct buffer carries a pointer to a dcache, which is a
> volatile thing that can come and go.  If I'm creating large numbers of
> files, is it possible for the directory buffers to be pointing to dcaches
> that are no longer valid?

your diagnosis is correct. The new buffer code (which I wrote) did not deal
with dcache object re-use, as I had conflated the concepts of "dcache *
reuse" and "dcache slot reuse".

This patch:
<http://www.contrib.andrew.cmu.edu/~cg2v/dirbuffer_fid_is_index.patch>

should fix this problem. It now stores the dcache index (aka slot number,
which is the same as the numeric part of the cache file's filename) in the
buffer instead of the ephemeral struct dcache pointer.

Since the reason that the buffer changes were made in the first place was
to work around the bad behavior that cache files were not being properly
truncated on linux 2.6 (which resulted in what appeared to be directory
corruption), and the truncation problem has been fixed, it may be
appropriate to back out the buffer changes if they continue to cause
problems. I'll let others decide that, however. if the change is reverted,
whoever does so should make sure that all the affected code deals correctly
with platforms that have 64 bit inode numbers.



--==========EBC05448BF4B092D7873==========
Content-Type: application/pkcs7-signature
Content-Transfer-Encoding: base64

MIIOmAYJKoZIhvcNAQcCoIIOiTCCDoUCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3
DQEHAaCCDAQwggS/MIICp6ADAgECAgMAnckwDQYJKoZIhvcNAQEEBQAweTEQMA4G
A1UEChMHUm9vdCBDQTEeMBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIw
IAYDVQQDExlDQSBDZXJ0IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkB
FhJzdXBwb3J0QGNhY2VydC5vcmcwHhcNMDQwNzEzMDEzODAyWhcNMDUwNzEzMDEz
ODAyWjA/MRkwFwYDVQQDExBDQWNlcnQgVXNlciBDZXJ0MSIwIAYJKoZIhvcNAQkB
FhNjZzJ2QGFuZHJldy5jbXUuZWR1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAoMPgwO7Y4nAhlbGEhCjKauDlj1wtQVIR/wHuCChDzSJMy0HVD73pIpUf
PYcsGGnr3qScinkGtdFICULOtNGRJLDgFizaxHhkaJhzNKL6NaNpu3TV34NcYc1F
vz6xlppMYzt9DDHxgq0lSiZr4PWfW/9xEZMPh4NnAa7v8l3eaP5wmDsQxrmjNsrv
+jA0vYqXa0XeCO2r/28+is6i3NpH3+R+ocuVekyZwuHh1SHr4EnCEP2xW7rBimf9
3WdrZh7RD9XuQQn4AQMyTvYiO1PkX7MgNy9dNMcxf/82oMC25MMrrLoiLXT9ZPZC
Me2nrAfd0q4K2d1fVlhqen23DqlieQIDAQABo4GJMIGGMAwGA1UdEwEB/wQCMAAw
VgYJYIZIAYb4QgENBEkWR1RvIGdldCB5b3VyIG93biBjZXJ0aWZpY2F0ZSBmb3Ig
RlJFRSBoZWFkIG92ZXIgdG8gaHR0cDovL3d3dy5jYWNlcnQub3JnMB4GA1UdEQQX
MBWBE2NnMnZAYW5kcmV3LmNtdS5lZHUwDQYJKoZIhvcNAQEEBQADggIBAJIhmtfY
37R31BfGtRwZE87WYUKNi34eLVRrxJoEGs0FDKfs9mPCYgPjttVvsp/7iFWxC5Ar
YFVqB0TIm0iBZPrBUrC6hkOksuPcxXvwJuP+vHHX5oejMDAH34eGvx5XA8FtiDOr
/nRJI9ObGeohkpF6zdcFtPdiZeIhqfKxMnnvKTUfkAVL2wdy+GO42czSKECjWxDP
Q+M3Q5hoiH8Dfmm7ugo6sWetntvLHLjYMQUugLTN8a72jGZx1WyRuUgPK2Hk6d1L
TVV7rMR+osK/85KpJXtr1H38MITdqCrS3HVGakdkqyT83CuxVYDvywugsNKUSWxM
2EKuoji6av+/nwiKroTsbXV22duaYrZifcVFRsVEx3wE4x6/aeGhMdBuckzBK6o7
3qe/zhYor/2G3p6nKrZUI2bVFfTY3UvSRig/Z6j5cc+AmN9w4OiFjdxMKXd8y9Os
4t7ZmsFAzOfss5XMJ3s7SGkPuxZW74yQy29eaZRLcmZ3iLbzTL/4GSOeZIZ7Z+AM
eMcnUvtlFQ0Z+8weLQUd5BhYtPY4eMh3jUcJiNc9/VJ+kItG3P3/doUopb03sAfI
6giCPyLBw/U3+ejqbIDdJoBT1iTPDwICuHsP6dckZOlJOV6NL9S8J9xhCC04duAl
Mr9lwWHO0jLdROgo8B+rNHnGuQV0Oeo0T+Z4MIIHPTCCBSWgAwIBAgIBADANBgkq
hkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290IENBMR4wHAYDVQQLExVodHRwOi8v
d3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNBIENlcnQgU2lnbmluZyBBdXRob3Jp
dHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRAY2FjZXJ0Lm9yZzAeFw0wMzAzMzAx
MjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAOBgNVBAoTB1Jvb3QgQ0ExHjAcBgNV
BAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2VydCBTaWdu
aW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNlcnQub3Jn
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAziLA4kZ97DYoB1CW8qAz
QIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ8BLPRoZzYLdufujAWGSuzbCtRRcM
Y/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6zWYyN3L69wj1x81YyY7nDl7qPv4c
oRQKFWyGhFtkZip6qUtTefWIonvuLwphK42yfk1WpRPs6tqSnqxEQR5YYGUFZvjA
RL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7w2t6iPGwcswlWyCR7BYCEo8y6RcY
SNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jcG8Y0f3/JHIJ6BVgrCFvzOKKrF11m
yZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4kepKwDpUeb+agRThHqtdB7Uq3EvbX
G4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43qlaegw1SJpfvbi1EinbLDvhG+LJGG
i5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQQUxPKZgh/TMfdQwEUfoZd9vUFBzu
gcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivUfslfrejrckzzAeVLIL+aplfKkQAB
i6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826YreQQejdIOQpvGQpQsgi3Hia/0Ps
mBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4wggHKMB0GA1UdDgQWBBQWtTIb1Mfz
4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGYgBQWtTIb1Mfz4OaO873SsDrusjkY
0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEeMBwGA1UECxMVaHR0cDovL3d3dy5j
YWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0IFNpZ25pbmcgQXV0aG9yaXR5MSEw
HwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2VydC5vcmeCAQAwDwYDVR0TAQH/BAUw
AwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRwczovL3d3dy5jYWNlcnQub3JnL3Jl
dm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0dHBzOi8vd3d3LmNhY2VydC5vcmcv
cmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYlaHR0cDovL3d3dy5jYWNlcnQub3Jn
L2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhCAQ0ESRZHVG8gZ2V0IHlvdXIgb3du
IGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQgb3ZlciB0byBodHRwOi8vd3d3LmNh
Y2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIBACjH7pyCArpcgBLKNQodgW+JapnM
8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCcnWKdpIevZ1gNMDY75q1I08t0AoZx
PuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg18p5aTuxZZKmxoGCXJzN600BiqXf
EVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/cgr/c6EWtTZBzCDyUZbAEmXZ/4rzC
ahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBlJzt7u0NDY8RD97LsaMzhGY4i+5jh
e1o+ATc7iwiwovOVThrLm82asduycPAtStvYsONvRUgzEv/+PDIqVPfE94rwiCPC
R/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+TSCX8Ev2fQtzzxD72V7DX3WnRBnc0
CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYFCpUCTPJ5GhD22Dp1nPMd8aINcGeG
G7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwumGCSNe9FINSkYQKyTYOGWhlC0elnY
jyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzkzk6q5PYvCdxTby78dOs6Y5nCpqyJ
vKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmWomTxJBzcoTWcFbLUvFUufQb1nA5V
9FrWk9p2rSVzTMVDMYICXDCCAlgCAQEwgYAweTEQMA4GA1UEChMHUm9vdCBDQTEe
MBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0
IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy
dC5vcmcCAwCdyTAJBgUrDgMCGgUAoIGxMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0B
BwEwHAYJKoZIhvcNAQkFMQ8XDTA1MDExOTA0NDkyMVowIwYJKoZIhvcNAQkEMRYE
FFc2dn/TdNDrJ4LsqTs8J3xDPfYfMFIGCSqGSIb3DQEJDzFFMEMwCgYIKoZIhvcN
AwcwDgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqG
SIb3DQMCAgEoMA0GCSqGSIb3DQEBAQUABIIBADf2HktmhBrulnKfrvebOr38x3Bw
uBGGh+x3wXqPfnVJ+x6AITh4NINXRJ6FfnBAOk+wEPGVOnjFfdJUjhuunpJxiTRK
kpkM4mlN7vRJd7PY6Gx7XDWab+VAybzTAJqfdQnlsvahMyIIggjKnUSvSlJ+4REB
5KeViffQDOMrevw8u3fGzECy47IFW25fDgKSMNGm6E7fShhTDXcOKduYlMpCi++F
mOuRzCo5xxDSvBLRN9jft3qky+7V1fqRLPPMnzErxdS+CoXRPVenJvsq1WE4VYwX
zSX5uhLrlMSY4+2THhSAH9kZBGz3HMok5/KYXFRqA5/uL2NX0F7cYk6x1AI=

--==========EBC05448BF4B092D7873==========--