diff options
author | Prashanth Pai <ppai@redhat.com> | 2016-05-23 14:47:38 +0530 |
---|---|---|
committer | Thiago da Silva <thiago@redhat.com> | 2016-08-10 11:37:28 -0700 |
commit | 88a1bd75a515e348c6cd5f08e98ec9e39b7f66e8 (patch) | |
tree | 556b3175371b87e63da4ce8a6f1c99ed90b03b17 /.gitreview | |
parent | e482e747f6715d56b3cf6b220c5447de95858bee (diff) |
Don't attempt unlink on a non-existing object
Problem:
getxattr() and unlink() were being called on an object path which was
already determined to be non-existent. This resulted in both these
syscalls always failing with ENOENT when client issues DELETE request on
an object that does not exist.
A request to DELETE an object will incur the following DiskFile API
calls in sequence:
disk_file.read_metadata()
disk_file.delete()
The above mentioned problem manifests because Swift code invokes
disk_file.delete() even when disk_file.read_metadata() has raised
DiskFileNotExist.
Fix:
During disk_file.read_metadata(), make a note that the file does not
exist. When disk_file.delete() is called, do not proceed with object
deletion.
Change-Id: Iaf6915197a8fced7564db8fab80e696dea080c25
Signed-off-by: Prashanth Pai <ppai@redhat.com>
Reviewed-on: http://review.gluster.org/14501
Reviewed-by: Thiago da Silva <thiago@redhat.com>
Tested-by: Thiago da Silva <thiago@redhat.com>
Diffstat (limited to '.gitreview')
0 files changed, 0 insertions, 0 deletions