예제 #1
0
static int db_insert_operation(db_thread_info_t *p_info,
			       struct hdlmap_tuple *data)
{
	int rc;
	char handle_str[2 * NFS4_FHSIZE + 1];

	rc = sqlite3_bind_int64(p_info->prep_stmt[INSERT_STATEMENT], 1,
				data->nfs23_digest.object_id);
	CheckBind(p_info->db_conn, rc, p_info->prep_stmt[INSERT_STATEMENT]);

	rc = sqlite3_bind_int(p_info->prep_stmt[INSERT_STATEMENT], 2,
			      data->nfs23_digest.handle_hash);
	CheckBind(p_info->db_conn, rc, p_info->prep_stmt[INSERT_STATEMENT]);

	snprintmem(handle_str, sizeof(handle_str), data->fh4_data,
		   data->fh4_len);

	rc = sqlite3_bind_text(p_info->prep_stmt[INSERT_STATEMENT], 3,
			       handle_str, -1, SQLITE_STATIC);
	CheckBind(p_info->db_conn, rc, p_info->prep_stmt[INSERT_STATEMENT]);

	rc = sqlite3_step(p_info->prep_stmt[INSERT_STATEMENT]);
	CheckStep(p_info->db_conn, rc, p_info->prep_stmt[INSERT_STATEMENT]);

	/* clear results */
	sqlite3_reset(p_info->prep_stmt[INSERT_STATEMENT]);

	return HANDLEMAP_SUCCESS;

}				/* db_insert_operation */
예제 #2
0
static int db_insert_operation(db_thread_info_t * p_info,
                               nfs23_map_handle_t * p_nfs23_digest,
                               fsal_handle_t * p_handle)
{
  int rc;
  char handle_str[2 * sizeof(fsal_handle_t) + 1];

  rc = sqlite3_bind_int64(p_info->prep_stmt[INSERT_STATEMENT], 1,
                          p_nfs23_digest->object_id);
  CheckBind(p_info->db_conn, rc, p_info->prep_stmt[INSERT_STATEMENT]);

  rc = sqlite3_bind_int(p_info->prep_stmt[INSERT_STATEMENT], 2,
                        p_nfs23_digest->handle_hash);
  CheckBind(p_info->db_conn, rc, p_info->prep_stmt[INSERT_STATEMENT]);

  snprintHandle(handle_str, 2 * sizeof(fsal_handle_t) + 1, p_handle);

  rc = sqlite3_bind_text(p_info->prep_stmt[INSERT_STATEMENT], 3, handle_str, -1,
                         SQLITE_STATIC);
  CheckBind(p_info->db_conn, rc, p_info->prep_stmt[INSERT_STATEMENT]);

  rc = sqlite3_step(p_info->prep_stmt[INSERT_STATEMENT]);
  CheckStep(p_info->db_conn, rc, p_info->prep_stmt[INSERT_STATEMENT]);

  /* clear results */
  sqlite3_reset(p_info->prep_stmt[INSERT_STATEMENT]);

  return HANDLEMAP_SUCCESS;

}                               /* db_insert_operation */
예제 #3
0
static int db_delete_operation(db_thread_info_t *p_info,
			       nfs23_map_handle_t *p_nfs23_digest)
{
	int rc;

	rc = sqlite3_bind_int64(p_info->prep_stmt[DELETE_STATEMENT], 1,
				p_nfs23_digest->object_id);
	CheckBind(p_info->db_conn, rc, p_info->prep_stmt[DELETE_STATEMENT]);

	rc = sqlite3_bind_int(p_info->prep_stmt[DELETE_STATEMENT], 2,
			      p_nfs23_digest->handle_hash);
	CheckBind(p_info->db_conn, rc, p_info->prep_stmt[DELETE_STATEMENT]);

	rc = sqlite3_step(p_info->prep_stmt[DELETE_STATEMENT]);
	CheckStep(p_info->db_conn, rc, p_info->prep_stmt[DELETE_STATEMENT]);

	/* clear results */
	sqlite3_reset(p_info->prep_stmt[DELETE_STATEMENT]);

	return HANDLEMAP_SUCCESS;

}				/* db_delete_operation */