svn commit: r233984 - in projects/nand: lib/libnandfs sbin/nandfs

Grzegorz Bernacki gber at FreeBSD.org
Sat Apr 7 05:32:06 UTC 2012


Author: gber
Date: Sat Apr  7 05:32:06 2012
New Revision: 233984
URL: http://svn.freebsd.org/changeset/base/233984

Log:
  nandfs: remove locks from libnandfs and tools accordingly
  
  Obtained from: Semihalf
  Supported by:  FreeBSD Foundation, Juniper Networks

Modified:
  projects/nand/lib/libnandfs/libnandfs.h
  projects/nand/lib/libnandfs/nandfs.c
  projects/nand/sbin/nandfs/mksnap.c
  projects/nand/sbin/nandfs/rmsnap.c

Modified: projects/nand/lib/libnandfs/libnandfs.h
==============================================================================
--- projects/nand/lib/libnandfs/libnandfs.h	Sat Apr  7 05:25:13 2012	(r233983)
+++ projects/nand/lib/libnandfs/libnandfs.h	Sat Apr  7 05:32:06 2012	(r233984)
@@ -46,19 +46,10 @@ const char *nandfs_errmsg(struct nandfs 
 void nandfs_init(struct nandfs *, const char *);
 void nandfs_destroy(struct nandfs *);
 
-int nandfs_cleanerd_set(struct nandfs *);
-int nandfs_cleanerd_unset(struct nandfs *);
-
 const char *nandfs_dev(struct nandfs *);
 
 int nandfs_open(struct nandfs *);
-int nandfs_open_rw(struct nandfs *);
-int nandfs_open_dev(struct nandfs *);
 void nandfs_close(struct nandfs *);
-void nandfs_close_dev(struct nandfs *);
-
-int nandfs_lock(struct nandfs *, int write);
-int nandfs_unlock(struct nandfs *);
 
 ssize_t nandfs_get_cp(struct nandfs *, uint64_t,
     struct nandfs_cpinfo *, size_t);

Modified: projects/nand/lib/libnandfs/nandfs.c
==============================================================================
--- projects/nand/lib/libnandfs/nandfs.c	Sat Apr  7 05:25:13 2012	(r233983)
+++ projects/nand/lib/libnandfs/nandfs.c	Sat Apr  7 05:32:06 2012	(r233984)
@@ -50,8 +50,6 @@ __FBSDID("$FreeBSD$");
 #define	NANDFS_IS_OPENED	0x2
 #define	NANDFS_IS_OPENED_DEV	0x4
 #define	NANDFS_IS_ERROR		0x8
-#define	NANDFS_IS_LOCKED	0x10
-#define	NANDFS_IS_READONLY	0x20
 
 #define DEBUG
 #undef DEBUG
@@ -66,12 +64,6 @@ __FBSDID("$FreeBSD$");
 #define	NANDFS_ASSERT_VALID_DEV(fs)	\
 	assert(((fs)->n_flags & (NANDFS_IS_VALID | NANDFS_IS_OPENED_DEV)) == \
 	    (NANDFS_IS_VALID | NANDFS_IS_OPENED_DEV))
-#define NANDFS_ASSERT_RDWR(fs)		\
-	assert(!((fs)->n_flags & NANDFS_IS_READONLY))
-#define NANDFS_ASSERT_LOCKED(fs)	\
-	assert((fs)->n_flags & NANDFS_IS_LOCKED)
-#define NANDFS_ASSERT_UNLOCKED(fs)	\
-	assert(!((fs)->n_flags & NANDFS_IS_LOCKED))
 
 int
 nandfs_iserror(struct nandfs *fs)
@@ -104,88 +96,6 @@ nandfs_seterr(struct nandfs *fs, const c
 	fs->n_flags |= NANDFS_IS_ERROR;
 }
 
-int
-nandfs_cleanerd_set(struct nandfs *fs)
-{
-
-	NANDFS_ASSERT_VALID_DEV(fs);
-
-	if (ioctl(fs->n_iocfd, NANDFS_IOCTL_CLEANERD_SET) == -1) {
-		nandfs_seterr(fs, "%s", strerror(errno));
-		return (-1);
-	}
-
-	return (0);
-}
-
-int
-nandfs_cleanerd_unset(struct nandfs *fs)
-{
-
-	NANDFS_ASSERT_VALID_DEV(fs);
-
-	if (ioctl(fs->n_iocfd, NANDFS_IOCTL_CLEANERD_UNSET) == -1) {
-		nandfs_seterr(fs, "%s", strerror(errno));
-		return (-1);
-	}
-
-	return (0);
-}
-
-int
-nandfs_lock(struct nandfs *fs, int rdwr)
-{
-	struct flock lck;
-	int error;
-
-	NANDFS_ASSERT_VALID(fs);
-	NANDFS_ASSERT_RDWR(fs);
-	NANDFS_ASSERT_UNLOCKED(fs);
-
-	lck.l_type = (rdwr ? F_WRLCK : F_RDLCK);
-	lck.l_start = 0;
-	lck.l_whence = SEEK_SET;
-	lck.l_len = 1;
-
-	error = fcntl(fs->n_iocfd, F_SETLKW, &lck);
-	if (error == -1) {
-		nandfs_seterr(fs, "couldn't lock %s: %s", fs->n_ioc,
-		    strerror(errno));
-		return (-1);
-	}
-
-	fs->n_flags |= NANDFS_IS_LOCKED;
-
-	return (0);
-}
-
-int
-nandfs_unlock(struct nandfs *fs)
-{
-	struct flock lck;
-	int error;
-
-	NANDFS_ASSERT_VALID(fs);
-	NANDFS_ASSERT_RDWR(fs);
-	NANDFS_ASSERT_LOCKED(fs);
-
-	lck.l_type = F_UNLCK;
-	lck.l_start = 0;
-	lck.l_whence = SEEK_SET;
-	lck.l_len = 1;
-
-	error = fcntl(fs->n_iocfd, F_SETLK, &lck);
-	if (error == -1) {
-		nandfs_seterr(fs, "couldn't unlock %s: %s", fs->n_ioc,
-		    strerror(errno));
-		return (-1);
-	}
-
-	fs->n_flags &= ~NANDFS_IS_LOCKED;
-
-	return (0);
-}
-
 const char *
 nandfs_dev(struct nandfs *fs)
 {
@@ -209,26 +119,18 @@ nandfs_destroy(struct nandfs *fs)
 
 	assert(fs->n_iocfd == -1);
 	fs->n_flags &=
-	    ~(NANDFS_IS_ERROR | NANDFS_IS_VALID | NANDFS_IS_READONLY);
+	    ~(NANDFS_IS_ERROR | NANDFS_IS_VALID);
 	assert(fs->n_flags == 0);
 }
 
-static int
-_nandfs_open(struct nandfs *fs, int rdwr)
+int
+nandfs_open(struct nandfs *fs)
 {
 	struct nandfs_fsinfo fsinfo;
-	int flags;
 
 	fs->n_flags |= NANDFS_IS_OPENED;
 
-	if (rdwr)
-		flags = O_RDWR;
-	else {
-		fs->n_flags |= NANDFS_IS_READONLY;
-		flags = O_RDONLY;
-	}
-
-	fs->n_iocfd = open(fs->n_ioc, flags, S_IRUSR | S_IWUSR | S_IRGRP |
+	fs->n_iocfd = open(fs->n_ioc, O_RDONLY, S_IRUSR | S_IWUSR | S_IRGRP |
 	    S_IWGRP | S_IROTH | S_IWOTH);
 	if (fs->n_iocfd == -1) {
 		nandfs_seterr(fs, "couldn't open %s: %s", fs->n_ioc,
@@ -249,39 +151,6 @@ _nandfs_open(struct nandfs *fs, int rdwr
 	return (0);
 }
 
-int
-nandfs_open(struct nandfs *fs)
-{
-
-	return (_nandfs_open(fs, 0));
-}
-
-int
-nandfs_open_rw(struct nandfs *fs)
-{
-
-	return (_nandfs_open(fs, 1));
-}
-
-int
-nandfs_open_dev(struct nandfs *fs)
-{
-
-	fs->n_flags |= NANDFS_IS_OPENED_DEV;
-
-	if (nandfs_open_rw(fs) == -1)
-		return (-1);
-
-	fs->n_devfd = open(fs->n_dev, O_RDONLY);
-	if (fs->n_devfd == -1) {
-		nandfs_seterr(fs, "couldn't open %s: %s", fs->n_dev,
-		    strerror(errno));
-		return (-1);
-	}
-
-	return (0);
-}
-
 void
 nandfs_close(struct nandfs *fs)
 {
@@ -294,18 +163,6 @@ nandfs_close(struct nandfs *fs)
 	fs->n_flags &= ~NANDFS_IS_OPENED;
 }
 
-void
-nandfs_close_dev(struct nandfs *fs)
-{
-
-	assert(fs->n_flags & NANDFS_IS_OPENED_DEV);
-
-	close(fs->n_devfd);
-	fs->n_devfd = -1;
-	fs->n_flags &= ~NANDFS_IS_OPENED_DEV;
-	nandfs_close(fs);
-}
-
 static ssize_t
 nandfs_get_cpinfo(struct nandfs *fs, uint64_t cno, int mode,
     struct nandfs_cpinfo *cpinfo, size_t nci)
@@ -349,8 +206,6 @@ nandfs_make_snap(struct nandfs *fs, uint
 {
 
 	NANDFS_ASSERT_VALID(fs);
-	NANDFS_ASSERT_RDWR(fs);
-	NANDFS_ASSERT_LOCKED(fs);
 
 	if (ioctl(fs->n_iocfd, NANDFS_IOCTL_MAKE_SNAP, cno) == -1) {
 		nandfs_seterr(fs, "ioctl NANDFS_IOCTL_MAKE_SNAP: %s",
@@ -366,8 +221,6 @@ nandfs_delete_snap(struct nandfs *fs, ui
 {
 
 	NANDFS_ASSERT_VALID(fs);
-	NANDFS_ASSERT_RDWR(fs);
-	NANDFS_ASSERT_LOCKED(fs);
 
 	if (ioctl(fs->n_iocfd, NANDFS_IOCTL_DELETE_SNAP, &cno) == -1) {
 		nandfs_seterr(fs, "ioctl NANDFS_IOCTL_DELETE_SNAP: %s",

Modified: projects/nand/sbin/nandfs/mksnap.c
==============================================================================
--- projects/nand/sbin/nandfs/mksnap.c	Sat Apr  7 05:25:13 2012	(r233983)
+++ projects/nand/sbin/nandfs/mksnap.c	Sat Apr  7 05:32:06 2012	(r233984)
@@ -61,29 +61,18 @@ nandfs_mksnap(int argc, char **argv)
 	}
 
 	nandfs_init(&fs, argv[0]);
-	error = nandfs_open_rw(&fs);
+	error = nandfs_open(&fs);
 	if (error == -1) {
 		fprintf(stderr, "nandfs_open: %s\n", nandfs_errmsg(&fs));
 		goto out;
 	}
 
-	error = nandfs_lock(&fs, 1);
-	if (error == -1) {
-		fprintf(stderr, "nandfs_lock: %s\n", nandfs_errmsg(&fs));
-		goto out;
-	}
-
 	error = nandfs_make_snap(&fs, &cpno);
 	if (error == -1)
 		fprintf(stderr, "nandfs_make_snap: %s\n", nandfs_errmsg(&fs));
 	else
 		printf("%jd\n", cpno);
 
-	error = nandfs_unlock(&fs);
-	if (error == -1) {
-		fprintf(stderr, "nandfs_unlock: %s\n", nandfs_errmsg(&fs));
-		goto out;
-	}
 out:
 	nandfs_close(&fs);
 	nandfs_destroy(&fs);

Modified: projects/nand/sbin/nandfs/rmsnap.c
==============================================================================
--- projects/nand/sbin/nandfs/rmsnap.c	Sat Apr  7 05:25:13 2012	(r233983)
+++ projects/nand/sbin/nandfs/rmsnap.c	Sat Apr  7 05:32:06 2012	(r233984)
@@ -70,27 +70,16 @@ nandfs_rmsnap(int argc, char **argv)
 	}
 
 	nandfs_init(&fs, argv[1]);
-	error = nandfs_open_rw(&fs);
+	error = nandfs_open(&fs);
 	if (error == -1) {
 		fprintf(stderr, "nandfs_open: %s\n", nandfs_errmsg(&fs));
 		goto out;
 	}
 
-	error = nandfs_lock(&fs, 1);
-	if (error == -1) {
-		fprintf(stderr, "nandfs_lock: %s\n", nandfs_errmsg(&fs));
-		goto out;
-	}
-
 	error = nandfs_delete_snap(&fs, cpno);
 	if (error == -1)
 		fprintf(stderr, "nandfs_delete_snap: %s\n", nandfs_errmsg(&fs));
 
-	error = nandfs_unlock(&fs);
-	if (error == -1) {
-		fprintf(stderr, "nandfs_unlock: %s\n", nandfs_errmsg(&fs));
-		goto out;
-	}
 out:
 	nandfs_close(&fs);
 	nandfs_destroy(&fs);


More information about the svn-src-projects mailing list