* [PATCH] udf: add speciffic ->setattr callback
@ 2010-03-29 7:05 Dmitry Monakhov
2010-03-29 14:51 ` Jan Kara
0 siblings, 1 reply; 2+ messages in thread
From: Dmitry Monakhov @ 2010-03-29 7:05 UTC (permalink / raw)
To: linux-fsdevel; +Cc: jack, Dmitry Monakhov
generic setattr not longer responsible for quota transfer.
use udf_setattr for all udf's inodes.
Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
---
fs/udf/file.c | 2 +-
fs/udf/inode.c | 2 +-
fs/udf/namei.c | 9 ++++++++-
fs/udf/udfdecl.h | 3 ++-
4 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/fs/udf/file.c b/fs/udf/file.c
index 1eb0677..4b6a46c 100644
--- a/fs/udf/file.c
+++ b/fs/udf/file.c
@@ -218,7 +218,7 @@ const struct file_operations udf_file_operations = {
.llseek = generic_file_llseek,
};
-static int udf_setattr(struct dentry *dentry, struct iattr *iattr)
+int udf_setattr(struct dentry *dentry, struct iattr *iattr)
{
struct inode *inode = dentry->d_inode;
int error;
diff --git a/fs/udf/inode.c b/fs/udf/inode.c
index c7da1a3..7d60558 100644
--- a/fs/udf/inode.c
+++ b/fs/udf/inode.c
@@ -1314,7 +1314,7 @@ static void udf_fill_inode(struct inode *inode, struct buffer_head *bh)
break;
case ICBTAG_FILE_TYPE_SYMLINK:
inode->i_data.a_ops = &udf_symlink_aops;
- inode->i_op = &page_symlink_inode_operations;
+ inode->i_op = &udf_symlink_inode_operations;
inode->i_mode = S_IFLNK | S_IRWXUGO;
break;
case ICBTAG_FILE_TYPE_MAIN:
diff --git a/fs/udf/namei.c b/fs/udf/namei.c
index 96757e3..1fdbee2 100644
--- a/fs/udf/namei.c
+++ b/fs/udf/namei.c
@@ -925,7 +925,7 @@ static int udf_symlink(struct inode *dir, struct dentry *dentry,
iinfo = UDF_I(inode);
inode->i_mode = S_IFLNK | S_IRWXUGO;
inode->i_data.a_ops = &udf_symlink_aops;
- inode->i_op = &page_symlink_inode_operations;
+ inode->i_op = &udf_symlink_inode_operations;
if (iinfo->i_alloc_type != ICBTAG_FLAG_AD_IN_ICB) {
struct kernel_lb_addr eloc;
@@ -1393,6 +1393,7 @@ const struct export_operations udf_export_ops = {
const struct inode_operations udf_dir_inode_operations = {
.lookup = udf_lookup,
.create = udf_create,
+ .setattr = udf_setattr,
.link = udf_link,
.unlink = udf_unlink,
.symlink = udf_symlink,
@@ -1401,3 +1402,9 @@ const struct inode_operations udf_dir_inode_operations = {
.mknod = udf_mknod,
.rename = udf_rename,
};
+const struct inode_operations udf_symlink_inode_operations = {
+ .readlink = generic_readlink,
+ .follow_link = page_follow_link_light,
+ .put_link = page_put_link,
+ .setattr = udf_setattr,
+};
diff --git a/fs/udf/udfdecl.h b/fs/udf/udfdecl.h
index 8d46f42..0592020 100644
--- a/fs/udf/udfdecl.h
+++ b/fs/udf/udfdecl.h
@@ -76,6 +76,7 @@ extern const struct inode_operations udf_dir_inode_operations;
extern const struct file_operations udf_dir_operations;
extern const struct inode_operations udf_file_inode_operations;
extern const struct file_operations udf_file_operations;
+extern const struct inode_operations udf_symlink_inode_operations;
extern const struct address_space_operations udf_aops;
extern const struct address_space_operations udf_adinicb_aops;
extern const struct address_space_operations udf_symlink_aops;
@@ -131,7 +132,7 @@ extern int udf_write_fi(struct inode *inode, struct fileIdentDesc *,
/* file.c */
extern int udf_ioctl(struct inode *, struct file *, unsigned int,
unsigned long);
-
+extern int udf_setattr(struct dentry *dentry, struct iattr *iattr);
/* inode.c */
extern struct inode *udf_iget(struct super_block *, struct kernel_lb_addr *);
extern int udf_sync_inode(struct inode *);
--
1.6.6.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] udf: add speciffic ->setattr callback
2010-03-29 7:05 [PATCH] udf: add speciffic ->setattr callback Dmitry Monakhov
@ 2010-03-29 14:51 ` Jan Kara
0 siblings, 0 replies; 2+ messages in thread
From: Jan Kara @ 2010-03-29 14:51 UTC (permalink / raw)
To: Dmitry Monakhov; +Cc: linux-fsdevel, jack
On Mon 29-03-10 11:05:21, Dmitry Monakhov wrote:
> generic setattr not longer responsible for quota transfer.
> use udf_setattr for all udf's inodes.
Thanks. Merged.
Honza
>
> Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
> ---
> fs/udf/file.c | 2 +-
> fs/udf/inode.c | 2 +-
> fs/udf/namei.c | 9 ++++++++-
> fs/udf/udfdecl.h | 3 ++-
> 4 files changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/fs/udf/file.c b/fs/udf/file.c
> index 1eb0677..4b6a46c 100644
> --- a/fs/udf/file.c
> +++ b/fs/udf/file.c
> @@ -218,7 +218,7 @@ const struct file_operations udf_file_operations = {
> .llseek = generic_file_llseek,
> };
>
> -static int udf_setattr(struct dentry *dentry, struct iattr *iattr)
> +int udf_setattr(struct dentry *dentry, struct iattr *iattr)
> {
> struct inode *inode = dentry->d_inode;
> int error;
> diff --git a/fs/udf/inode.c b/fs/udf/inode.c
> index c7da1a3..7d60558 100644
> --- a/fs/udf/inode.c
> +++ b/fs/udf/inode.c
> @@ -1314,7 +1314,7 @@ static void udf_fill_inode(struct inode *inode, struct buffer_head *bh)
> break;
> case ICBTAG_FILE_TYPE_SYMLINK:
> inode->i_data.a_ops = &udf_symlink_aops;
> - inode->i_op = &page_symlink_inode_operations;
> + inode->i_op = &udf_symlink_inode_operations;
> inode->i_mode = S_IFLNK | S_IRWXUGO;
> break;
> case ICBTAG_FILE_TYPE_MAIN:
> diff --git a/fs/udf/namei.c b/fs/udf/namei.c
> index 96757e3..1fdbee2 100644
> --- a/fs/udf/namei.c
> +++ b/fs/udf/namei.c
> @@ -925,7 +925,7 @@ static int udf_symlink(struct inode *dir, struct dentry *dentry,
> iinfo = UDF_I(inode);
> inode->i_mode = S_IFLNK | S_IRWXUGO;
> inode->i_data.a_ops = &udf_symlink_aops;
> - inode->i_op = &page_symlink_inode_operations;
> + inode->i_op = &udf_symlink_inode_operations;
>
> if (iinfo->i_alloc_type != ICBTAG_FLAG_AD_IN_ICB) {
> struct kernel_lb_addr eloc;
> @@ -1393,6 +1393,7 @@ const struct export_operations udf_export_ops = {
> const struct inode_operations udf_dir_inode_operations = {
> .lookup = udf_lookup,
> .create = udf_create,
> + .setattr = udf_setattr,
> .link = udf_link,
> .unlink = udf_unlink,
> .symlink = udf_symlink,
> @@ -1401,3 +1402,9 @@ const struct inode_operations udf_dir_inode_operations = {
> .mknod = udf_mknod,
> .rename = udf_rename,
> };
> +const struct inode_operations udf_symlink_inode_operations = {
> + .readlink = generic_readlink,
> + .follow_link = page_follow_link_light,
> + .put_link = page_put_link,
> + .setattr = udf_setattr,
> +};
> diff --git a/fs/udf/udfdecl.h b/fs/udf/udfdecl.h
> index 8d46f42..0592020 100644
> --- a/fs/udf/udfdecl.h
> +++ b/fs/udf/udfdecl.h
> @@ -76,6 +76,7 @@ extern const struct inode_operations udf_dir_inode_operations;
> extern const struct file_operations udf_dir_operations;
> extern const struct inode_operations udf_file_inode_operations;
> extern const struct file_operations udf_file_operations;
> +extern const struct inode_operations udf_symlink_inode_operations;
> extern const struct address_space_operations udf_aops;
> extern const struct address_space_operations udf_adinicb_aops;
> extern const struct address_space_operations udf_symlink_aops;
> @@ -131,7 +132,7 @@ extern int udf_write_fi(struct inode *inode, struct fileIdentDesc *,
> /* file.c */
> extern int udf_ioctl(struct inode *, struct file *, unsigned int,
> unsigned long);
> -
> +extern int udf_setattr(struct dentry *dentry, struct iattr *iattr);
> /* inode.c */
> extern struct inode *udf_iget(struct super_block *, struct kernel_lb_addr *);
> extern int udf_sync_inode(struct inode *);
> --
> 1.6.6.1
>
--
Jan Kara <jack@suse.cz>
SUSE Labs, CR
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-03-29 15:51 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-29 7:05 [PATCH] udf: add speciffic ->setattr callback Dmitry Monakhov
2010-03-29 14:51 ` Jan Kara
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).