patch: Add recycle:minsize parameter

SATOH Fumiyasu fumiya at samba.gr.jp
Fri Jul 7 06:21:20 GMT 2006


Hi,

I want recycle:minsize parameter to ignore NULL (0 size)
files by vfs_recycle.so. If you feel so good, please
apply the following patch to SAMBA_3_0 tree.

Index: SAMBA_3_0/source/modules/vfs_recycle.c
===================================================================
--- SAMBA_3_0/source/modules/vfs_recycle.c	(revision 16853)
+++ SAMBA_3_0/source/modules/vfs_recycle.c	(working copy)
@@ -153,17 +153,28 @@ static const char **recycle_noversions(v
 	return tmp_lp;
 }
 
-static int recycle_maxsize(vfs_handle_struct *handle)
+static SMB_OFF_T recycle_maxsize(vfs_handle_struct *handle)
 {
-	int maxsize;
+	SMB_OFF_T maxsize;
 	
-	maxsize = lp_parm_int(SNUM(handle->conn), "recycle", "maxsize", -1);
+	maxsize = lp_parm_ulong(SNUM(handle->conn), "recycle", "maxsize", 0);
 
-	DEBUG(10, ("recycle: maxsize = %d\n", maxsize));
+	DEBUG(10, ("recycle: maxsize = %lu\n", maxsize));
 	
 	return maxsize;
 }
 
+static SMB_OFF_T recycle_minsize(vfs_handle_struct *handle)
+{
+	SMB_OFF_T minsize;
+	
+	minsize = lp_parm_ulong(SNUM(handle->conn), "recycle", "minsize", 0);
+
+	DEBUG(10, ("recycle: minsize = %lu\n", minsize));
+	
+	return minsize;
+}
+
 static mode_t recycle_directory_mode(vfs_handle_struct *handle)
 {
 	int dirmode;
@@ -378,7 +389,7 @@ static int recycle_unlink(vfs_handle_str
 	const char *base;
 	char *repository = NULL;
 	int i = 1;
-	int maxsize;
+	SMB_OFF_T maxsize, minsize;
 	SMB_OFF_T file_size; /* space_avail;	*/
 	BOOL exist;
 	int rc = -1;
@@ -423,6 +434,12 @@ static int recycle_unlink(vfs_handle_str
 		rc = SMB_VFS_NEXT_UNLINK(handle, conn, file_name);
 		goto done;
 	}
+	minsize = recycle_minsize(handle);
+	if(minsize > 0 && file_size < minsize) {
+		DEBUG(3, ("recycle: File %s lowers minimum recycle size, purging... \n", file_name));
+		rc = SMB_VFS_NEXT_UNLINK(handle, conn, file_name);
+		goto done;
+	}
 
 	/* FIXME: this is wrong: moving files with rename does not change the disk space
 	 * allocation

-- 
-- Name: SATOH Fumiyasu / fumiyas @ miraclelinux.com
-- Business Home: http://www.MiracleLinux.com
-- Personal Home: http://www.SFO.jp/blog/


More information about the samba-technical mailing list