Re: [evolution-patches] Folder creation patch



fwiw, seems like a reasonable approach to the problem.

although - there is still a problem that a file descriptor is hanging
around open on a file.

that is why exiting evolution works because the temporary file nfs keeps
around for the open file descriptor vanishes when the file descriptor is
closed (i.e. when you exit).

so, could you leave the bug open and assign it to me, perhaps lowering
its priority?  lsof should hopefully show which fd is still opened in
such a directory after its deleted.


On Thu, 2003-04-17 at 00:57, Ettore Perazzoli wrote:
> This makes the shell not report an error if, when, creating a new
> folder, the corresponding directory already exists.
> 
> The problem is that if you get in a situation like the one described in
> #40989 (the files in the folder's directory get removed but not the
> directory itself), then the folder doesn't appear on the folder tree but
> it is also impossible to recreate it because the directory already
> exists.
> 
> -- Ettore
> 
> ______________________________________________________________________
> 
> ? GNOME_Evolution_Shell.oaf
> ? e-shell-importer.c.new
> ? selection_change_id
> ? test.evocomp
> ? glade/e-active-connection-dialog.gladep
> ? glade/e-shell-folder-creation-dialog.gladep
> Index: ChangeLog
> ===================================================================
> RCS file: /cvs/gnome/evolution/shell/ChangeLog,v
> retrieving revision 1.1240
> diff -u -p -r1.1240 ChangeLog
> --- ChangeLog	16 Apr 2003 14:49:22 -0000	1.1240
> +++ ChangeLog	16 Apr 2003 15:24:23 -0000
> @@ -1,5 +1,11 @@
>  2003-04-16  Ettore Perazzoli  <ettore ximian com>
>  
> +	* e-local-storage.c (create_folder_directory): Don't signal an
> +	error if mkdir() returns EEXIST.  This should at least help with
> +	situations like the one described in #40989.
> +
> +2003-04-16  Ettore Perazzoli  <ettore ximian com>
> +
>  	* apps_evolution_shell.schemas: Increase the default value for
>  	/schemas/apps/evolution/shell/view_defaults/folder_bar/width to
>  	200. 	[#41002]
> Index: e-local-storage.c
> ===================================================================
> RCS file: /cvs/gnome/evolution/shell/e-local-storage.c,v
> retrieving revision 1.91
> diff -u -p -r1.91 e-local-storage.c
> --- e-local-storage.c	26 Mar 2003 19:31:37 -0000	1.91
> +++ e-local-storage.c	16 Apr 2003 15:24:23 -0000
> @@ -393,13 +393,12 @@ create_folder_directory (ELocalStorage *
>  		parent = g_strdup_printf ("%s/", parent_path);
>  		subfolders_directory_physical_path = e_path_to_physical (priv->base_path, parent);
>  
> -		if (! g_file_test (subfolders_directory_physical_path, G_FILE_TEST_EXISTS)) {
> -			if (mkdir (subfolders_directory_physical_path, 0700) == -1) {
> -				g_free (subfolders_directory_physical_path);
> -				g_free (parent);
> -				return errno_to_storage_result ();
> -			}
> +		if (mkdir (subfolders_directory_physical_path, 0700) == -1 && errno != EEXIST) {
> +			g_free (subfolders_directory_physical_path);
> +			g_free (parent);
> +			return errno_to_storage_result ();
>  		}
> +
>  		g_free (subfolders_directory_physical_path);
>  		g_free (parent);
>  	}




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