Commit be2e8801 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2

* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2:
  ocfs2: Use GFP_NOFS in kmalloc during localalloc window move
  ocfs2: Allow uid/gid/perm changes of symlinks
  ocfs2/dlm: dlmdebug.c: make 2 functions static
  ocfs2: make struct o2cb_stack_ops static
  ocfs2: make struct ocfs2_control_device static
  ocfs2: Correct merge of 52f7c21b (Move /sys/o2cb to /sys/fs/o2cb)
parents d626e3bf 4ba1c5bf
...@@ -65,7 +65,7 @@ int o2cb_sys_init(void) ...@@ -65,7 +65,7 @@ int o2cb_sys_init(void)
{ {
int ret; int ret;
o2cb_kset = kset_create_and_add("o2cb", NULL, NULL); o2cb_kset = kset_create_and_add("o2cb", NULL, fs_kobj);
if (!o2cb_kset) if (!o2cb_kset)
return -ENOMEM; return -ENOMEM;
......
...@@ -44,7 +44,8 @@ ...@@ -44,7 +44,8 @@
#define MLOG_MASK_PREFIX ML_DLM #define MLOG_MASK_PREFIX ML_DLM
#include "cluster/masklog.h" #include "cluster/masklog.h"
int stringify_lockname(const char *lockname, int locklen, char *buf, int len); static int stringify_lockname(const char *lockname, int locklen, char *buf,
int len);
void dlm_print_one_lock_resource(struct dlm_lock_resource *res) void dlm_print_one_lock_resource(struct dlm_lock_resource *res)
{ {
...@@ -251,7 +252,8 @@ EXPORT_SYMBOL_GPL(dlm_errname); ...@@ -251,7 +252,8 @@ EXPORT_SYMBOL_GPL(dlm_errname);
* *
* For more on lockname formats, please refer to dlmglue.c and ocfs2_lockid.h. * For more on lockname formats, please refer to dlmglue.c and ocfs2_lockid.h.
*/ */
int stringify_lockname(const char *lockname, int locklen, char *buf, int len) static int stringify_lockname(const char *lockname, int locklen, char *buf,
int len)
{ {
int out = 0; int out = 0;
__be64 inode_blkno_be; __be64 inode_blkno_be;
...@@ -368,7 +370,7 @@ static void dlm_debug_free(struct kref *kref) ...@@ -368,7 +370,7 @@ static void dlm_debug_free(struct kref *kref)
kfree(dc); kfree(dc);
} }
void dlm_debug_put(struct dlm_debug_ctxt *dc) static void dlm_debug_put(struct dlm_debug_ctxt *dc)
{ {
if (dc) if (dc)
kref_put(&dc->debug_refcnt, dlm_debug_free); kref_put(&dc->debug_refcnt, dlm_debug_free);
......
...@@ -1048,6 +1048,10 @@ int ocfs2_setattr(struct dentry *dentry, struct iattr *attr) ...@@ -1048,6 +1048,10 @@ int ocfs2_setattr(struct dentry *dentry, struct iattr *attr)
mlog_entry("(0x%p, '%.*s')\n", dentry, mlog_entry("(0x%p, '%.*s')\n", dentry,
dentry->d_name.len, dentry->d_name.name); dentry->d_name.len, dentry->d_name.name);
/* ensuring we don't even attempt to truncate a symlink */
if (S_ISLNK(inode->i_mode))
attr->ia_valid &= ~ATTR_SIZE;
if (attr->ia_valid & ATTR_MODE) if (attr->ia_valid & ATTR_MODE)
mlog(0, "mode change: %d\n", attr->ia_mode); mlog(0, "mode change: %d\n", attr->ia_mode);
if (attr->ia_valid & ATTR_UID) if (attr->ia_valid & ATTR_UID)
......
...@@ -260,7 +260,7 @@ void ocfs2_shutdown_local_alloc(struct ocfs2_super *osb) ...@@ -260,7 +260,7 @@ void ocfs2_shutdown_local_alloc(struct ocfs2_super *osb)
bh = osb->local_alloc_bh; bh = osb->local_alloc_bh;
alloc = (struct ocfs2_dinode *) bh->b_data; alloc = (struct ocfs2_dinode *) bh->b_data;
alloc_copy = kmalloc(bh->b_size, GFP_KERNEL); alloc_copy = kmalloc(bh->b_size, GFP_NOFS);
if (!alloc_copy) { if (!alloc_copy) {
status = -ENOMEM; status = -ENOMEM;
goto out_commit; goto out_commit;
...@@ -931,7 +931,7 @@ static int ocfs2_local_alloc_slide_window(struct ocfs2_super *osb, ...@@ -931,7 +931,7 @@ static int ocfs2_local_alloc_slide_window(struct ocfs2_super *osb,
* local alloc shutdown won't try to double free main bitmap * local alloc shutdown won't try to double free main bitmap
* bits. Make a copy so the sync function knows which bits to * bits. Make a copy so the sync function knows which bits to
* free. */ * free. */
alloc_copy = kmalloc(osb->local_alloc_bh->b_size, GFP_KERNEL); alloc_copy = kmalloc(osb->local_alloc_bh->b_size, GFP_NOFS);
if (!alloc_copy) { if (!alloc_copy) {
status = -ENOMEM; status = -ENOMEM;
mlog_errno(status); mlog_errno(status);
......
...@@ -385,7 +385,7 @@ static int o2cb_cluster_this_node(unsigned int *node) ...@@ -385,7 +385,7 @@ static int o2cb_cluster_this_node(unsigned int *node)
return 0; return 0;
} }
struct ocfs2_stack_operations o2cb_stack_ops = { static struct ocfs2_stack_operations o2cb_stack_ops = {
.connect = o2cb_cluster_connect, .connect = o2cb_cluster_connect,
.disconnect = o2cb_cluster_disconnect, .disconnect = o2cb_cluster_disconnect,
.hangup = o2cb_cluster_hangup, .hangup = o2cb_cluster_hangup,
......
...@@ -635,7 +635,7 @@ static const struct file_operations ocfs2_control_fops = { ...@@ -635,7 +635,7 @@ static const struct file_operations ocfs2_control_fops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
}; };
struct miscdevice ocfs2_control_device = { static struct miscdevice ocfs2_control_device = {
.minor = MISC_DYNAMIC_MINOR, .minor = MISC_DYNAMIC_MINOR,
.name = "ocfs2_control", .name = "ocfs2_control",
.fops = &ocfs2_control_fops, .fops = &ocfs2_control_fops,
......
...@@ -167,9 +167,11 @@ const struct inode_operations ocfs2_symlink_inode_operations = { ...@@ -167,9 +167,11 @@ const struct inode_operations ocfs2_symlink_inode_operations = {
.readlink = page_readlink, .readlink = page_readlink,
.follow_link = ocfs2_follow_link, .follow_link = ocfs2_follow_link,
.getattr = ocfs2_getattr, .getattr = ocfs2_getattr,
.setattr = ocfs2_setattr,
}; };
const struct inode_operations ocfs2_fast_symlink_inode_operations = { const struct inode_operations ocfs2_fast_symlink_inode_operations = {
.readlink = ocfs2_readlink, .readlink = ocfs2_readlink,
.follow_link = ocfs2_follow_link, .follow_link = ocfs2_follow_link,
.getattr = ocfs2_getattr, .getattr = ocfs2_getattr,
.setattr = ocfs2_setattr,
}; };
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment