On Wed, Jul 02, 2014 at 04:59:27PM +0800, Ruoyu wrote: > d_name is only the file's name without absolute path. To unlink it > successfully, we must give the full name. > > Signed-off-by: Ruoyu <[email protected]> > --- > sheep/md.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/sheep/md.c b/sheep/md.c > index 538f696..f6d3b8e 100644 > --- a/sheep/md.c > +++ b/sheep/md.c > @@ -185,6 +185,7 @@ static int for_each_object_in_path(const char *path, > struct dirent *d; > uint64_t oid; > int ret = SD_RES_SUCCESS; > + char file_name[PATH_MAX]; > > dir = opendir(path); > if (unlikely(!dir)) { > @@ -208,8 +209,12 @@ static int for_each_object_in_path(const char *path, > /* don't call callback against temporary objects */ > if (is_tmp_dentry(d->d_name)) { > if (cleanup) { > - sd_debug("remove tmp object %s", d->d_name); > - unlink(d->d_name); > + snprintf(file_name, sizeof(file_name), > + "%s/%s", path, d->d_name); > + sd_debug("remove tmp object %s", file_name); > + if (unlink(file_name) < 0) > + sd_err("failed to unlink %s: %m", > + file_name); > } > continue; > } > -- > 1.8.3.2 > > > -- > sheepdog mailing list > [email protected] > http://lists.wpkg.org/mailman/listinfo/sheepdog
Applied thanks Yuan -- sheepdog mailing list [email protected] http://lists.wpkg.org/mailman/listinfo/sheepdog
