403Webshell
Server IP : 172.67.216.182  /  Your IP : 172.70.189.104
Web Server : Apache
System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64
User : www ( 1000)
PHP Version : 7.4.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/src/linux-headers-5.15.0-143/include/linux/ceph/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/src/linux-headers-5.15.0-143/include/linux/ceph/string_table.h
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _FS_CEPH_STRING_TABLE_H
#define _FS_CEPH_STRING_TABLE_H

#include <linux/types.h>
#include <linux/kref.h>
#include <linux/rbtree.h>
#include <linux/rcupdate.h>

struct ceph_string {
	struct kref kref;
	union {
		struct rb_node node;
		struct rcu_head rcu;
	};
	size_t len;
	char str[];
};

extern void ceph_release_string(struct kref *ref);
extern struct ceph_string *ceph_find_or_create_string(const char *str,
						      size_t len);
extern bool ceph_strings_empty(void);

static inline struct ceph_string *ceph_get_string(struct ceph_string *str)
{
	kref_get(&str->kref);
	return str;
}

static inline void ceph_put_string(struct ceph_string *str)
{
	if (!str)
		return;
	kref_put(&str->kref, ceph_release_string);
}

static inline int ceph_compare_string(struct ceph_string *cs,
				      const char* str, size_t len)
{
	size_t cs_len = cs ? cs->len : 0;
	if (cs_len != len)
		return cs_len - len;
	if (len == 0)
		return 0;
	return strncmp(cs->str, str, len);
}

#define ceph_try_get_string(x)					\
({								\
	struct ceph_string *___str;				\
	rcu_read_lock();					\
	for (;;) {						\
		___str = rcu_dereference(x);			\
		if (!___str ||					\
		    kref_get_unless_zero(&___str->kref))	\
			break;					\
	}							\
	rcu_read_unlock();					\
	(___str);						\
})

#endif

Youez - 2016 - github.com/yon3zu
LinuXploit