To test whether a file is regular is too expensive. First you stat file, secondly you open it, it consumes 2 syscall. It will only consumes one system call at all if you just open it and ignore the failure. -----Original Message----- From: vikasgp at gmail.com [mailto:vikasgp at gmail.com] On Behalf Of Vikas Gorur Sent: Thursday, March 26, 2009 7:07 PM To: Kirby Zhou Cc: Anand Avati; gluster-users at gluster.org Subject: Re: 2.0.0rc7 can not remove symbol-links 2009/3/26 Kirby Zhou <kirbyzhou at sohu-rd.com>: > My patch: > > ############## > --- glusterfs-2.0.0rc7.ori/xlators/storage/posix/src/posix.c ? ?2009-03-26 > 18:50:11.000000000 +0800 > +++ glusterfs-2.0.0rc7/xlators/storage/posix/src/posix.c ? ? ? ?2009-03-26 > 18:50:19.000000000 +0800 > @@ -866,11 +866,8 @@ > > ? ? ? ? fd = open (real_path, O_RDONLY); > ? ? ? ? if (fd == -1) { > - ? ? ? ? ? ? ? ?op_ret = -1; > - ? ? ? ? ? ? ? ?op_errno = errno; > ? ? ? ? ? ? ? ? gf_log (this->name, GF_LOG_WARNING, > ? ? ? ? ? ? ? ? ? ? ? ? "open of %s failed: %s", loc->path, strerror > (op_errno)); > - ? ? ? ? ? ? ? ?goto out; > ? ? ? ? } > > ? ? ? ? op_ret = unlink (real_path); It'd be better to simply not do the open() on any file other than regular files. The fix is on its way to being committed. Thanks for spotting this, and sending the patch :) Vikas -- Engineer - Z Research http://gluster.com/