Yes, this is being fixed as I write. Avati
On Thu, Mar 26, 2009 at 4:18 PM, Kirby Zhou <[email protected]> wrote: > It seems a bad modification. > If a bad symbol link exist, something error happens. > > http://git.savannah.gnu.org/cgit/gluster.git/commit/?id=4e5c297d7c3480d0d3ab > 1c0c2a184c6a4fb801ef > > diff --git a/xlators/storage/posix/src/posix.c > b/xlators/storage/posix/src/posix.c > index 534db05..c20c7fe 100644 > --- a/xlators/storage/posix/src/posix.c > +++ b/xlators/storage/posix/src/posix.c > @@ -853,6 +853,7 @@ posix_unlink (call_frame_t *frame, xlator_t *this, > int32_t op_ret = -1; > int32_t op_errno = 0; > char * real_path = NULL; > + int32_t fd = -1; > > DECLARE_OLD_FS_ID_VAR; > > @@ -863,6 +864,15 @@ posix_unlink (call_frame_t *frame, xlator_t *this, > SET_FS_ID (frame->root->uid, frame->root->gid); > MAKE_REAL_PATH (real_path, this, loc->path); > > + 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); > if (op_ret == -1) { > op_errno = errno; > @@ -876,8 +886,13 @@ posix_unlink (call_frame_t *frame, xlator_t *this, > out: > SET_TO_OLD_FS_ID (); > frame->root->rsp_refs = NULL; > + > STACK_UNWIND (frame, op_ret, op_errno); > > + if (fd != -1) { > + close (fd); > + } > + > return 0; > } > > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Kirby Zhou > Sent: Thursday, March 26, 2009 6:18 PM > To: [email protected] > Subject: [Gluster-users] 2.0.0rc7 can not remove symbol-links > > 2.0.0rc7 can not remove symbol-links > > [r...@xen-727057 ~]# mount.glusterfs ~/x.vol /mnt/ > [r...@xen-727057 ~]# ll /mnt/ > log/ rpmbuild/ wxp/ XXX/ > [r...@xen-727057 ~]# ll /mnt/XXX/ > total 0 > lrwxrwxrwx 1 root root 1 Mar 26 18:13 X -> y > [r...@xen-727057 ~]# rm /mnt/XXX/X > rm: remove symbolic link `/mnt/XXX/X'? y > rm: cannot remove `/mnt/XXX/X': No such file or directory > > > With a simple volume: > > #server > volume brick1-posix > type storage/posix # POSIX FS translator > option directory /exports/disk1 # Export this directory > end-volume > volume brick1-locks > type features/locks > subvolumes brick1-posix > end-volume > volume brick1 > type performance/io-threads > subvolumes brick1-locks > option thread-count 16 > option cache-size 256m > end-volume > > ### Add network serving capability to above brick. > volume server > type protocol/server > option transport-type tcp/server # For TCP/IP transport > option listen-port 6986 # Default is 6996 > option client-volume-filename /etc/glusterfs/glusterfs.vol > subvolumes brick1 > option auth.ip.brick1.allow 10.10.*,10.11.*,10.15.*,192.168.* > end-volume > > #client > volume 10.10.123.17-brick1 > type protocol/client > option transport-type tcp/client > option remote-host 10.10.123.17 > option remote-port 6986 > option transport-timeout 5 > option remote-subvolume brick1 > end-volume > > FYI > > > > > _______________________________________________ > Gluster-users mailing list > [email protected] > http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users > > > > _______________________________________________ > Gluster-users mailing list > [email protected] > http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users > _______________________________________________ Gluster-users mailing list [email protected] http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users
