~ubuntu-branches/ubuntu/vivid/aufs/vivid

« back to all changes in this revision

Viewing changes to fs/aufs25/dinfo.c

  • Committer: Bazaar Package Importer
  • Author(s): Julian Andres Klode
  • Date: 2008-08-21 14:58:54 UTC
  • mfrom: (1.1.8 upstream) (4.1.1 lenny)
  • Revision ID: james.westby@ubuntu.com-20080821145854-4b49x09r4zmvlk5o
Tags: 0+20080719-4
01_vserver_apparmor.dpatch: [UPDATE] Disable vserver patches on kernel 
2.6.26, because they are not needed anymore. (Closes: #495921)

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
/*
20
20
 * dentry private data
21
21
 *
22
 
 * $Id: dinfo.c,v 1.4 2008/05/26 04:04:23 sfjro Exp $
 
22
 * $Id: dinfo.c,v 1.6 2008/07/14 00:14:33 sfjro Exp $
23
23
 */
24
24
 
25
25
#include "aufs.h"
40
40
                if (unlikely(nbr <= 0))
41
41
                        nbr = 1;
42
42
                dinfo->di_hdentry = kcalloc(nbr, sizeof(*dinfo->di_hdentry),
43
 
                                            GFP_KERNEL);
 
43
                                            GFP_NOFS);
44
44
                if (dinfo->di_hdentry) {
45
45
                        au_h_dentry_init_all(dinfo->di_hdentry, nbr);
46
46
                        atomic_set(&dinfo->di_generation, au_sigen(sb));
47
47
                        /* smp_mb(); */ /* atomic_set */
48
48
                        au_rw_init_wlock_nested(&dinfo->di_rwsem,
49
 
                                                AuLsc_DI_PARENT);
 
49
                                                AuLsc_DI_CHILD);
50
50
                        dinfo->di_bstart = -1;
51
51
                        dinfo->di_bend = -1;
52
52
                        dinfo->di_bwh = -1;
100
100
        case AuLsc_DI_PARENT3:
101
101
                ii_write_lock_parent3(inode);
102
102
                break;
 
103
        case AuLsc_DI_PARENT4:
 
104
                ii_write_lock_parent4(inode);
 
105
                break;
103
106
        default:
104
107
                BUG();
105
108
        }
126
129
        case AuLsc_DI_PARENT3:
127
130
                ii_read_lock_parent3(inode);
128
131
                break;
 
132
        case AuLsc_DI_PARENT4:
 
133
                ii_read_lock_parent4(inode);
 
134
                break;
129
135
        default:
130
136
                BUG();
131
137
        }
133
139
 
134
140
void di_read_lock(struct dentry *d, int flags, unsigned int lsc)
135
141
{
 
142
        LKTRTrace("%.*s, %u\n", AuDLNPair(d), lsc);
 
143
 
136
144
        SiMustAnyLock(d->d_sb);
137
145
        /* todo: always nested? */
138
146
        au_rw_read_lock_nested(&au_di(d)->di_rwsem, lsc);
146
154
 
147
155
void di_read_unlock(struct dentry *d, int flags)
148
156
{
 
157
        LKTRTrace("%.*s\n", AuDLNPair(d));
 
158
 
149
159
        SiMustAnyLock(d->d_sb);
150
160
        if (d->d_inode) {
151
161
                if (au_ftest_lock(flags, IW))
166
176
 
167
177
void di_write_lock(struct dentry *d, unsigned int lsc)
168
178
{
 
179
        LKTRTrace("%.*s, %u\n", AuDLNPair(d), lsc);
 
180
 
169
181
        SiMustAnyLock(d->d_sb);
170
182
        /* todo: always nested? */
171
183
        au_rw_write_lock_nested(&au_di(d)->di_rwsem, lsc);
175
187
 
176
188
void di_write_unlock(struct dentry *d)
177
189
{
 
190
        LKTRTrace("%.*s\n", AuDLNPair(d));
 
191
 
178
192
        SiMustAnyLock(d->d_sb);
179
193
        if (d->d_inode)
180
194
                ii_write_unlock(d->d_inode);