git://git.camperquake.de
/
zfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix getcwd() warning
[zfs.git]
/
module
/
zfs
/
dsl_dir.c
diff --git
a/module/zfs/dsl_dir.c
b/module/zfs/dsl_dir.c
index
1cd49c8
..
224cc0a
100644
(file)
--- a/
module/zfs/dsl_dir.c
+++ b/
module/zfs/dsl_dir.c
@@
-47,7
+47,7
@@
static void
dsl_dir_evict(dmu_buf_t *db, void *arg)
{
dsl_dir_t *dd = arg;
dsl_dir_evict(dmu_buf_t *db, void *arg)
{
dsl_dir_t *dd = arg;
- dsl_pool_t *dp = dd->dd_pool;
+ ASSERTV(dsl_pool_t *dp = dd->dd_pool;)
int t;
for (t = 0; t < TXG_SIZE; t++) {
int t;
for (t = 0; t < TXG_SIZE; t++) {
@@
-303,7
+303,7
@@
int
dsl_dir_open_spa(spa_t *spa, const char *name, void *tag,
dsl_dir_t **ddp, const char **tailp)
{
dsl_dir_open_spa(spa_t *spa, const char *name, void *tag,
dsl_dir_t **ddp, const char **tailp)
{
- char
buf[MAXNAMELEN]
;
+ char
*buf
;
const char *next, *nextnext = NULL;
int err;
dsl_dir_t *dd;
const char *next, *nextnext = NULL;
int err;
dsl_dir_t *dd;
@@
-313,14
+313,15
@@
dsl_dir_open_spa(spa_t *spa, const char *name, void *tag,
dprintf("%s\n", name);
dprintf("%s\n", name);
+ buf = kmem_alloc(MAXNAMELEN, KM_SLEEP);
err = getcomponent(name, buf, &next);
if (err)
err = getcomponent(name, buf, &next);
if (err)
-
return (err)
;
+
goto error
;
if (spa == NULL) {
err = spa_open(buf, &spa, FTAG);
if (err) {
dprintf("spa_open(%s) failed\n", buf);
if (spa == NULL) {
err = spa_open(buf, &spa, FTAG);
if (err) {
dprintf("spa_open(%s) failed\n", buf);
-
return (err)
;
+
goto error
;
}
openedspa = TRUE;
}
openedspa = TRUE;
@@
-336,7
+337,7
@@
dsl_dir_open_spa(spa_t *spa, const char *name, void *tag,
rw_exit(&dp->dp_config_rwlock);
if (openedspa)
spa_close(spa, FTAG);
rw_exit(&dp->dp_config_rwlock);
if (openedspa)
spa_close(spa, FTAG);
-
return (err)
;
+
goto error
;
}
while (next != NULL) {
}
while (next != NULL) {
@@
-372,7
+373,7
@@
dsl_dir_open_spa(spa_t *spa, const char *name, void *tag,
dsl_dir_close(dd, tag);
if (openedspa)
spa_close(spa, FTAG);
dsl_dir_close(dd, tag);
if (openedspa)
spa_close(spa, FTAG);
-
return (err)
;
+
goto error
;
}
/*
}
/*
@@
-391,6
+392,8
@@
dsl_dir_open_spa(spa_t *spa, const char *name, void *tag,
if (openedspa)
spa_close(spa, FTAG);
*ddp = dd;
if (openedspa)
spa_close(spa, FTAG);
*ddp = dd;
+error:
+ kmem_free(buf, MAXNAMELEN);
return (err);
}
return (err);
}
@@
-881,7
+884,7
@@
dsl_dir_tempreserve_clear(void *tr_cookie, dmu_tx_t *tx)
if (tr_cookie == NULL)
return;
if (tr_cookie == NULL)
return;
- while (
tr = list_head(tr_list
)) {
+ while (
(tr = list_head(tr_list)
)) {
if (tr->tr_dp) {
dsl_pool_tempreserve_clear(tr->tr_dp, tr->tr_size, tx);
} else if (tr->tr_ds) {
if (tr->tr_dp) {
dsl_pool_tempreserve_clear(tr->tr_dp, tr->tr_size, tx);
} else if (tr->tr_ds) {
@@
-964,11
+967,13
@@
dsl_dir_diduse_space(dsl_dir_t *dd, dd_used_t type,
dd->dd_phys->dd_used_breakdown[type] >= -used);
dd->dd_phys->dd_used_breakdown[type] += used;
#ifdef DEBUG
dd->dd_phys->dd_used_breakdown[type] >= -used);
dd->dd_phys->dd_used_breakdown[type] += used;
#ifdef DEBUG
- dd_used_t t;
- uint64_t u = 0;
- for (t = 0; t < DD_USED_NUM; t++)
- u += dd->dd_phys->dd_used_breakdown[t];
- ASSERT3U(u, ==, dd->dd_phys->dd_used_bytes);
+ {
+ dd_used_t t;
+ uint64_t u = 0;
+ for (t = 0; t < DD_USED_NUM; t++)
+ u += dd->dd_phys->dd_used_breakdown[t];
+ ASSERT3U(u, ==, dd->dd_phys->dd_used_bytes);
+ }
#endif
}
if (needlock)
#endif
}
if (needlock)
@@
-1283,8
+1288,8
@@
dsl_dir_rename_check(void *arg1, void *arg2, dmu_tx_t *tx)
if (closest_common_ancestor(dd, ra->newparent) == dd)
return (EINVAL);
if (closest_common_ancestor(dd, ra->newparent) == dd)
return (EINVAL);
- if (err = dsl_dir_transfer_possible(dd->dd_parent,
- ra->newparent, myspace))
+ if (
(
err = dsl_dir_transfer_possible(dd->dd_parent,
+ ra->newparent, myspace))
)
return (err);
}
return (err);
}
@@
-1414,3
+1419,10
@@
dsl_dir_snap_cmtime_update(dsl_dir_t *dd)
dd->dd_snap_cmtime = t;
mutex_exit(&dd->dd_lock);
}
dd->dd_snap_cmtime = t;
mutex_exit(&dd->dd_lock);
}
+
+#if defined(_KERNEL) && defined(HAVE_SPL)
+EXPORT_SYMBOL(dsl_dir_set_quota);
+EXPORT_SYMBOL(dsl_dir_set_reservation);
+EXPORT_SYMBOL(dsl_dir_open);
+EXPORT_SYMBOL(dsl_dir_close);
+#endif