diff options
author | David Howells <dhowells@redhat.com> | 2019-04-25 14:26:51 +0100 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2019-04-25 14:26:51 +0100 |
commit | 79ddbfa500b37a94fa7501e65ebdd5c0e4c7592d (patch) | |
tree | 1521d6e9276078aaf142ea40ab0f1e156c0fc276 /fs/afs/flock.c | |
parent | 99987c560046ea178eb5aea793043deea255f185 (diff) | |
download | linux-79ddbfa500b37a94fa7501e65ebdd5c0e4c7592d.tar.gz |
afs: Implement sillyrename for unlink and rename
Implement sillyrename for AFS unlink and rename, using the NFS variant implementation as a basis. Note that the asynchronous file locking extender/releaser has to be notified with a state change to stop it complaining if there's a race between that and the actual file deletion. A tracepoint, afs_silly_rename, is also added to note the silly rename and the cleanup. The afs_edit_dir tracepoint is given some extra reason indicators and the afs_flock_ev tracepoint is given a silly-delete file lock cancellation indicator. Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'fs/afs/flock.c')
-rw-r--r-- | fs/afs/flock.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/afs/flock.c b/fs/afs/flock.c index 742038a21ef7..325bf731d8dd 100644 --- a/fs/afs/flock.c +++ b/fs/afs/flock.c @@ -300,7 +300,7 @@ again: /* attempt to release the server lock; if it fails, we just * wait 5 minutes and it'll expire anyway */ ret = afs_release_lock(vnode, vnode->lock_key); - if (ret < 0) { + if (ret < 0 && vnode->lock_state != AFS_VNODE_LOCK_DELETED) { trace_afs_flock_ev(vnode, NULL, afs_flock_release_fail, ret); printk(KERN_WARNING "AFS:" |