2.0.0rc7 can not remove symbol-links

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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);
##############

-----Original Message-----
From: anand.avati at gmail.com [mailto:anand.avati at gmail.com] On Behalf Of
Anand Avati
Sent: Thursday, March 26, 2009 6:55 PM
To: Kirby Zhou
Cc: gluster-users at gluster.org
Subject: Re: 2.0.0rc7 can not remove symbol-links

Yes, this is being fixed as I write.

Avati

On Thu, Mar 26, 2009 at 4:18 PM, Kirby Zhou <kirbyzhou at sohu-rd.com> 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: gluster-users-bounces at gluster.org
> [mailto:gluster-users-bounces at gluster.org] On Behalf Of Kirby Zhou
> Sent: Thursday, March 26, 2009 6:18 PM
> To: gluster-users at gluster.org
> Subject: 2.0.0rc7 can not remove symbol-links
>
> 2.0.0rc7 can not remove symbol-links
>
> [root at xen-727057 ~]# mount.glusterfs ~/x.vol /mnt/
> [root at xen-727057 ~]# ll /mnt/
> log/ ? ? ?rpmbuild/ wxp/ ? ? ?XXX/
> [root at xen-727057 ~]# ll /mnt/XXX/
> total 0
> lrwxrwxrwx 1 root root 1 Mar 26 18:13 X -> y
> [root at 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
> Gluster-users at gluster.org
> http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users
>
>
>
> _______________________________________________
> Gluster-users mailing list
> Gluster-users at gluster.org
> http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users
>





[Index of Archives]     [Gluster Development]     [Linux Filesytems Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux